2011-05-11 39 views
2

我是新來的鐵軌,需要你的幫助,應該是一個簡單的問題。rails activerecord元搜索undefined方法

當我運行這段代碼:

@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 users LEFT OUTER JOIN companies on companies.id = users.company_id WHERE(((users.firstname LIKE'%s%'or users.lastname LIKE'%s%')OR companies.name LIKE'%s%')) AND(users.id ='11'))

並且此用戶的company_id不爲空。

當我鍵入放@ user.name,而不是給我的用戶名,它給了我「用戶」

非常感謝您的幫助。

回答

0

雖然你數據庫「用戶」表中有一個名爲「COMPANY_ID」列用戶模式有一個就叫「公司」屬性。

嘗試 除非@ user.company_id.nil? @company = Company.find(@ user.company.id) end

0

感謝您的幫助。實際上,我通過將模型名稱@user更改爲@myuser來解決此問題。我沒有改變任何東西,它的工作原理。我的猜測是,這個問題是由Devise插件引起的,但這只是猜測...

乾杯。