【问题标题】:rails metasearch undefined method 'company_id'导轨元搜索未定义的方法'company_id'
【发布时间】:2011-05-10 21:27:46
【问题描述】:

我是 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%'))和(users.id = '11'))

并且该用户的 company_id 不为空。

当我输入 puts @user.name 时,它​​没有给我用户名,而是给了我“用户”

非常感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails activerecord meta-search


    【解决方案1】:

    @user.name 打印 User 因为 .where("users.id = ?", params[:id]) 仍然返回一个数组

    试试这个

    @users = @search.where("users.id = ?", params[:id])
    @user = @users.nil? ? @foundusers.first : @users.first
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多