1
検索フォームにRansackを使用しましたが、ransack_alias
を使用してクエリを短縮しようとしています。しかし、検索を実行すると、エイリアス化されたフィールドはクエリをまったくフィルタリングしません。単純なエイリアスを1つだけ持つようにフォームを単純化していて、うまくいかないようです。ransack_aliasはクエリで何もしません
= search_form_for @q, url: users_path, html: {method: :get} do |f|
= f.label :ec
= f.search_field :ec
= f.submit 'Search'
index.html.haml
ユーザモデル
class User < ActiveRecord::Base
ransack_alias :ec, :email_cont
end
私は、コントローラ内のブレークポイントを置く場合:
>> User.count
10
>> User.ransack({email_cont: "[email protected]"}).result.count
(93.8ms) SELECT COUNT(*) FROM "users" WHERE ("users"."email" ILIKE '%[email protected]\.com%')
1
>> params[:q]
{"ec" => "[email protected]"}
>> User.ransack(params[:q]).result.count
(28.4ms) SELECT COUNT(*) FROM "users"
10
>> User._ransack_aliases
{"ec" => "email_cont"}
私はここで間違って何をしているのですか?