NoMethodError:未定义的方法 - 如何查找方法?

时间:2011-03-18 21:50:31

标签: ruby-on-rails ruby-on-rails-3 rspec

我收到以下错误:

#<NoMethodError: undefined method `find_it' for #<struct xJob xxxx_id=527>>

我有一个控制器,它在控制器方法的末尾创建一个delayed_job,如下所示:

xJob.new(@xxxx.id).perform

然后在/lib/xJob.rb中:

class xJob < Struct.new(:xxxx_id)

  include ActionView::Helpers

  def perform

    begin
     .......
     goodstuff  =  find_it(stuff)
     .......
    rescue Exception => e
     .....
    end
  end

  def self.find_it(body)
    ....
  end

end

我需要将self添加到self.find_it,否则我无法在rspec中测试该方法。但现在它似乎已经超越了RSPEC。

想法?感谢

1 个答案:

答案 0 :(得分:2)

只需从find_it方法声明中删除“self”即可。因为当你定义它时它就变成了xJob的类方法,而不是实例方法。