gpt4 book ai didi

ruby-on-rails - Rescue - NoMethodError -- 铜管类的未定义方法日志

转载 作者:行者123 更新时间:2023-12-04 16:22:29 25 4
gpt4 key购买 nike

我正在努力将以下代码作为后台作业发送,同时不时遇到一个或另一个错误,

我的应用程序/ worker /brassring.rb 是

require File.dirname(__FILE__)+"/base_parser"
class Brassring < BaseParser
@queue = :Brassring_queue
def self.perform(page)
super page
.............
end
site_done

rescue Exception => e
def self.perform
log "error: #{e}"
end

end
end

我的 app/workers/base_parser.rb 是
#require 'rubygems'
require 'mechanize'
require 'mechanize/form'


class BaseParser


def initialize(site)
......
end


def add_fields_to_form(form, fields)
.....
end


def run
.................

end




def html2text(data)
......
end


def save_result_page(url, result_params)
............
end

def get_fields_from_page(page)
.......
end

def set_site_status(status)
........
end


def update_run_counter
.......
end

def site_done
......
end


def log(what)
.....
end

def utf8(untrusted_string)
.......
end

我在我的 lib/brassring.rb 中使用 Rescue_enqueue 方法对此进行排队
Resque.enqueue(Brassring,@site_id)

当我尝试使用 rake resque:work QUEUE=* 运行作业时
它在我的救援控制面板中失败了

无方法错误
错误:
未定义的方法 log' for Brassring:Class
/home/my/to/sorc/app/workers/brassring.rb:39:in
在表演中拯救'
/home/my/to/sorc/app/workers/brassring.rb:5:in`执行'

或者我应该怎么做才能让它发挥作用。

提前致谢

最佳答案

我认为你的问题是你误解了 rescue语句在 Ruby 中有效。您需要从 begin 开始,然后放一个 rescue您的 begin 底部的声明语句来关闭它,指示如果/当代码出错时应该做什么。我建议您阅读一份指南,该指南概述了 ruby​​ 中异常和救援的工作原理 such as this one .

关于ruby-on-rails - Rescue - NoMethodError -- 铜管类的未定义方法日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9683519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com