NoMethodError:在Rails中未定义的方法`created_at'

时间:2011-07-11 17:07:42

标签: ruby-on-rails ruby activerecord

所以这是我从ActiveRecord other = [#<Referrer id: 16, name: "Other", published: true, created_at: "2011-07-11 16:22:00", updated_at: "2011-07-11 16:22:00">] 检索的对象 我可以other.created_at为什么不能other.name

以下是模型:

class Referrer < ActiveRecord::Base
end

我得到的错误:

NoMethodError: undefined method `created_at' for #<ActiveRecord::Relation:0x1035763c8>

我错过了什么?

1 个答案:

答案 0 :(得分:7)

如果您注意到,other实际上是ActiveRecord::Relation,这基本上意味着它的行为类似于Referrer个对象。所以你不能只在它上面调用created_at。您可以致电other.first.created_at,或者如果您想要一系列created_at日期,则可以other.map(&:created_at)

您可以拨打other.name的原因是因为ActiveRecord::Relation会响应姓名。但它与name模型上的name属性不同Referrer方法。 other.name应该返回"Referrer"而不是"Other"对吗?