NoMethodError:在Rails中未定义的方法`created_at’
所以这是我从ActiveRecord中检索到的other = [#]
对象other = [#]
为什么我不能做other.created_at
而我可以做other.name
?
这是模型:
class Referrer < ActiveRecord::Base end
我得到的错误:
NoMethodError: undefined method `created_at' for #
我错过了什么?
如果您注意到, other
实际上是ActiveRecord::Relation
,这基本上意味着它就像一个Referrer
对象数组。 所以你不能只在它上面调用created_at
。 您可以调用other.first.created_at
或者如果您想要一个created_at
日期数组,您可以执行other.map(&:created_at)
。
你可以调用other.name
的原因是因为ActiveRecord::Relation
响应了name。 但它是与Referrer
模型上的name
属性不同的name
方法。 other.name
应该返回"Referrer"
而不是"Other"
对吗?
- 如何在Rails Active Record中关闭auto_increment
- 当我尝试做rake db:migrate时,我收到一个错误:ActiveRecord :: NODatabaseError角色“ubuntu”不存在
- Ruby on Rails多态关系的优缺点
- NameError:has_many通过关系的未初始化常量
- Rails – SQL查询返回所有指定相关对象的对象(has_many through)
- Rails – AciveRecord使用:dependent =>:在条件下销毁
- Rails ActiveRecord – 如何在两个日期之间获取记录
- 的ActiveRecord :: ConnectionTimeoutError
- 如何获取触发查询的代码行?