Rails .includes()返回'未定义的方法'
问题描述:
我有一个公司对象与关联的位置。Rails .includes()返回'未定义的方法'
公司的has_many:位置 位置belongs_to的:公司
当我打电话:
@company = Company.find(5).includes(:locations)
我得到的错误:
NoMethodError: undefined method `includes' for #<Company:0x000000066ad398>
我正在关注的rubyonrails.org的说明一个T ...据我所知。
答
find()
触发一个数据库查询,并返回模型的一个实例。您无法拨打includes
,因为includes
应该有一个ActiveRecord::Relation
作为接收者。
您需要颠倒顺序:find
必须留底:
@company = Company.includes(:locations).find(5)
答
你检查记录在数据库上location.rb
模型。 company_id
在那里?可以使用pry-rails
来调试代码。你的代码看起来不错。
您正在创建的json与jbuilder
?因为是这样的话,你需要创建相应的每个循环。
谢谢。我不再收到错误,但我没有收到:与公司一起返回的地点。 (将此响应转换为json) –
然后它必定是一个不同的问题。请打开一个不同的问题,因为这个特定的错误已经解决了。 –