Rails - 在模型中包含嵌套资源

时间:2015-06-01 18:54:42

标签: ruby-on-rails nested-resources

我知道如何在控制器渲染中包含嵌套资源,如下所示:

render :json => @user, :include => {:profile}

我的疑问是:是否有可能在模特中这样做?

我尝试了很多方法,但它没有给我这样的用户和他的个人资料:

{
    id: 1,
    name: 'John',
    profile: {
        id: 64,
        status: 'active'
    }
}

我在我的模型中试过这个:

User.where(id: 1).includes(:profile)

输出结果为:

User Load (0.2ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1
Profile Load (0.2ms)  SELECT `profiles`.* FROM `profiles` WHERE `profiles`.`user_id` IN (1)

1 个答案:

答案 0 :(得分:1)

修改:忽略渲染。如果要在JSON输出中包含关联模型,只需调用[to_json并将include作为选项] [1]。

编辑二:根据我们的聊天情况,您似乎想要获取对象,而不是JSON数据。

使用您的示例用户记录:

users = User.includes(:profile).where("YOUR CONDITIONS") 
users.each do |user|
  puts user.profile.status #or do something with your loop
end