用于#<activerecord :: relation的未定义方法`user_id':0x007f8da82da248> </activerecord :: relation:0x007f8da82da248>

时间:2013-06-19 16:55:44

标签: ruby ruby-on-rails-3

我在代码的第二行出错,我在Estate表中有一个user_id列。我在这里做错了什么?

myestate = Estate.where(:Mgmt => current_user.Company)
@managements = User.where(:id => myestate.user_id)

1 个答案:

答案 0 :(得分:6)

where正在返回ActiveRecord::Relation个对象。因为where(:mgmt => current_user.company)可以返回0,1或许多记录,所以你必须告诉查询你想从中得到什么。

尝试:

myestate = Estate.where(:Mgmt => current_user.Company).first
@managements = User.where(:id => myestate.user_id)

强烈建议您熟悉AREL及其工作原理。您可以在github pageActive Record Query Guide

上找到精彩信息