用于#<ActiveRecord :: Relation:0x007f8da82da248>的未定义方法`user_id'

Hri*_*dar 3 ruby ruby-on-rails-3

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

myestate = Estate.where(:Mgmt => current_user.Company)
@managements = User.where(:id => myestate.user_id)
Run Code Online (Sandbox Code Playgroud)

Gav*_*ler 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)
Run Code Online (Sandbox Code Playgroud)

强烈建议您熟悉AREL及其工作原理.您可以在github页面Active Record查询指南中找到很好的信息