に条件を見つけ、私はのparamsなどかなりの数を扱うことができ、レールのインデックス作用を有する:動的アクティブなレコード
params[:first_name] # can be nil or first_name
params[:age] # can be nil or age
params[:country] # can be nil or country
私は希望のユーザーを見つけるし、ゼロではありませんすべての条件。これにより、検索条件の8つの順列が得られます。
私はコードを乾燥して柔軟に保つことができ、if
文の束で終わることはできません。
conditions = params.only(:first_name, :age, :country)
conditions = conditions.delete_if {|key, value| value.blank?}
if conditions.empty?
User.all
else
User.all(:conditions => conditions)
end
奇妙なことに、私のparamsハッシュは唯一の方法しかないようです –