rails metasearch undefined方法'company_id'

时间:2011-05-10 21:27:47

标签: ruby-on-rails activerecord meta-search

我是rails的新手,需要你的帮助才能解决这个问题。

当我运行此代码时:

@search = User.search(params[:search])
@foundusers = @search.all.paginate :page => params[:page], :per_page => 20
@user = @search.where("users.id = ?", params[:id])
if @user.nil?
  @user = @foundusers.first
end
unless @user.company_id.nil?
  @company = Company.find(@user.company_id)
end

我收到以下错误声明: 用于#

的未定义方法`company_id'

我不明白,因为数据库上的查询是正确的(SELECT users。* FROM users LEFT OUTER JOIN companies ON companiesid = userscompany_id WHERE(({usersfirstname LIKE'%s%'或userslastname LIKE'%s%' )或companiesname LIKE'%s%'))AND(users.id = '11'))

此用户的company_id不为空。

当我输入puts @ user.name而不是给我用户名时,它会给我'用户'

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

@ user.name打印User因为.where(“users.id =?”,params [:id])仍然返回一个数组

试试这个

@users = @search.where("users.id = ?", params[:id])
@user = @users.nil? ? @foundusers.first : @users.first