所以这是我从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>
我错过了什么?
答案 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"
对吗?