我是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 companies
。id
= users
。company_id
WHERE(({users
。firstname
LIKE'%s%'或users
。lastname
LIKE'%s%' )或companies
。name
LIKE'%s%'))AND(users.id = '11'))
此用户的company_id不为空。
当我输入puts @ user.name而不是给我用户名时,它会给我'用户'
非常感谢你的帮助。
答案 0 :(得分:0)
@ user.name打印User因为.where(“users.id =?”,params [:id])仍然返回一个数组
试试这个
@users = @search.where("users.id = ?", params[:id])
@user = @users.nil? ? @foundusers.first : @users.first