簡體   English   中英

Rails ActiveRecord元搜索未定義方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM