我有一个带有控制器 OutcomeDatas 的模型 OutcomeData。
在 OutcomeData 中,我有一个 as_cleaned_hash 方法,它现在什么也没做。让我们假设它返回“你好”
class OutcomeData < ActiveRecord::Base
attr_accessible :key, :outcome_uid, :task_id, :value
belongs_to :task
belongs_to :outcome
def as_cleaned_hash
'hello i am alive'
end
这是 as_cleaned_hash 应该遵循的方法,如果重要的话:
@outcome_data = OutcomeData.find_all_by_outcome_uid(params[:outcome_uid])
hash = Hash.new
@outcome_data.each do |p|
unless p[:value].blank? || p[:key] == 'raw'
hash[p[:key]] = p[:value]
end
end
这很好用——现在我将它投入到我的控制器操作中,但由于它需要在我的整个应用程序中使用,我不能让这种情况发生。
因此,无论出于何种原因,我都会收到一个未定义的方法错误。
我调用了 OutcomeData.methods 来查看该方法是否存在,但不存在。(请参阅此处的列表:http: //pastebin.com/B3y1r2w7)
OutcomeData.respond_to?('as_cleaned_hash') 返回 false。
也没有什么特别的事情发生,所以我不太确定发生了什么。
带有 Ruby 2.0.0-p195 的 Rails 3.2.12