Rails 3.2.11 アプリで Ransack を使用していますが、気に入っています。現在、次のように特定の高校に一致するプロファイルを検索しています。
<%= f.check_box :profile_high_school_cont, {}, "#{current_user.profile.high_school}", '' %>
ただし、これにいくつかのロジックを追加し、検索をさらに絞り込み、他のユーザーが高校で検索できるようにしたいと考えています。
したがって、プロファイルの :high_school に特定のテキストが含まれているかどうかに加えて、プロファイルの :show_high_school が true であるかどうかのチェックを追加する方法があるかどうか疑問に思っています。
ざっと調べた後 (具体的には hereとhere )、次のカスタム ランサッカーを試しました。
ransacker :by_high_school,
:formatter => proc {
|high_school| Profile.where(:high_school => high_school, :show_high_school => true)
} do |parent|
parent.table[:user]
end
これを、プロファイルが 1 つあるユーザー モデルと、ユーザーに属しているプロファイル モデルの両方に追加しました。いずれの場合も、エラーが発生します。
undefined method `gsub' for []:ActiveRecord::Relation
Profile.rb で定義すると、次のエラーが表示されます。
User.search(:profile_by_high_school_cont => "Cent").result
私のDBはPostgreSQLです