1
검색 양식에 Ransack을 사용하고 ransack_alias
을 사용하여 쿼리를 줄이려고합니다. 그러나 검색을 수행 할 때 별칭이 지정된 필드는 쿼리를 전혀 필터링하지 않습니다. 나는 하나의 간단한 별칭을 갖도록 양식을 단순화했으며 작동하지 않는 것 같습니다.ransack_alias가 쿼리에서 아무 것도하지 않음
사용자 모델
class User < ActiveRecord::Base
ransack_alias :ec, :email_cont
end
index.html.haml
= search_form_for @q, url: users_path, html: {method: :get} do |f|
= f.label :ec
= f.search_field :ec
= f.submit 'Search'
내가 컨트롤러 내부에 중단 점을 넣을 경우
>> 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"}
내가 잘못 여기서 뭐하는 거지?