[英]rails activerecord metasearch undefined method
我是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%'OR users.lastname LIKE'% s%')或companies.name像'%s%'))和(users.id ='11'))
並且該用戶的company_id不為空。
當我鍵入puts @ user.name時,沒有給我用戶名,而是給了我'User'
非常感謝您的幫助。
盡管您的數據庫 “用戶”表中有一個名為“ company_id”的列,但用戶模型具有一個僅稱為“公司”的屬性。
嘗試除非@ user.company_id.nil? @company = Company.find(@ user.company.id)結束
謝謝你的幫助。 實際上,我通過將模型名稱@user更改為@myuser來解決了該問題。 我沒有進行任何其他更改,並且可以正常工作。 我的猜測是該問題是由於Devise插件引起的,但這只是一個猜測...
干杯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.