Rails包括不在rails控制台上工作

时间:2015-04-15 17:57:06

标签: ruby-on-rails ruby activerecord

我必须建模房间有许多画廊和画廊属于房间..我想得到两个表信息,我使用包括活动记录..

room = Room.includes(:galleries).where(id: id_number)

room = Room.joins(:galleries).select("room.*, galleries.name").where(id: id_number

上面的代码查询没有得到图库部分,它只获取房间信息。我很困惑如何使用includes。我已经看过了这个==> http://railscasts.com/episodes/181-include-vs-joins

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您只想在一个查询中加载房间及其拥有的图库,那么

room = Room.includes(:galleries).find(id_number)可以解决问题。

但我认为你误解了joinsincludes正在做什么。你将永远得到一个房间对象。如果您想访问这些图库,则必须致电room.galleries

答案 1 :(得分:0)

您可以尝试使用以下内容:

room = Room.find(id_number).eager_load(:galleries)

http://apidock.com/rails/ActiveRecord/QueryMethods/eager_load