我是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用户。* FROM用户LEFT OUTER JOIN公司ON companies.id = users.company_id WHERE(((userss.firstname LIKE'%s%'OR users.lastname LIKE'%s%')OR companies.name LIKE'%s%'))AND(users.id = '11'))
此用户的company_id不为空。
当我输入puts @ user.name而不是给我用户名时,它会给我'用户'
非常感谢你的帮助。
答案 0 :(得分:0)
虽然您的数据库'用户'表中有一个名为'company_id'的列,但用户模型有一个名为'company'的属性。
尝试 除非@ user.company_id.nil? @company = Company.find(@ user.company.id) 端
答案 1 :(得分:0)
感谢您的帮助。实际上,我通过将模型名称@user更改为@myuser来解决了这个问题。我没有改变任何其他东西,它的工作原理。我的猜测是问题是由Devise插件引起的,但这只是猜测......
干杯。