ransacker
Userにないカラムのsearchをransackerでカスタマイズ
Settings.target_user_idsに該当するmedical_idを持っているuserだけを対象にする(scope利用)
modelsy
scope :ms_users, ->(v=true){
if v && Settings.target_user_ids.present?
where("medical_id IN (?)", Settings.target_user_ids.split(/\s*,\s*/).map(&:to_i))
end
}
ransacker :ms_users,
:formatter => proc {|v|
ms_users(v=='true').map{|m|m.medical_id}.uniq
}, :splat_param => true do |parent|
parent.table[:medical_id]
end
#use
User.search(ms_users_in: true)
User.search(ms_users_in: false)
grouping
q = MedicalUser.search
params = {m: 'or', logs_created_at_gt: '2013-01-01 00:00:00' ,logs_created_at_lt: '2013-03-01 23:59:59' }
q.build_grouping params
q.result.to_sql