自定义ransacker返回错误 - []的未定义方法`gsub':ActiveRecord :: Relation

时间:2013-01-21 20:35:07

标签: ruby-on-rails-3 arel ransack

我在Rails 3.2.11应用程序中使用Ransack并且喜欢它。我目前正在搜索与特定高中相匹配的个人资料:

<%= f.check_box :profile_high_school_cont, {}, "#{current_user.profile.high_school}", '' %>

但是,我想为此添加一些额外的逻辑,并进一步优化搜索到个人资料,允许其他用户在高中找到它们。

所以我想知道是否有办法添加检查配置文件:show_high_school是否为真,以及配置文件的:high_school是否包含某些文本。

在探讨之后(特别是herehere),我尝试了以下自定义搜索者:

ransacker :by_high_school,
  :formatter => proc {
    |high_school| Profile.where(:high_school => high_school, :show_high_school => true)
  } do |parent|
    parent.table[:user]
  end

我将这两者都添加到User模型(has_one配置文件)和Profile模型(属于User)。在每种情况下我都会收到错误:

undefined method `gsub' for []:ActiveRecord::Relation

在Profile.rb中定义时,我收到以下错误:

User.search(:profile_by_high_school_cont => "Cent").result

我的数据库是PostgreSQL

0 个答案:

没有答案