我想從數據庫中選擇Cars
,其中where子句爲我的問題尋找最佳DRY方法。Rails ActiveRecord where子句
,比如我有這兩個參數
params[:car_model_id] (int)
params[:transmission_id] (int)
params[:from_date]
params[:to_date]
,但我不知道哪一個將是無效
if params[:car_model_id].nil? && !params[:transmission_id].nil?
if params[:from_date].nil? && params[:from_date].nil?
return Car.where(:transmission_id => params[:transmission_id])
else
return Car.where(:transmission_id => params[:transmission_id], :date => params[:from_date]..params[:to_date])
end
elseif !params[:car_model_id].nil? && params[:transmission_id].nil?
if params[:from_date].nil? && params[:from_date].nil?
return Car.where(:car_model_id=> params[:car_model_id])
else
return Car.where(:car_model_id=> params[:car_model_id], :date => params[:from_date]..params[:to_date])
end
else
return Car.where(:car_model_id=> params[:car_model_id], :transmission_id => params[:transmission_id], :date => params[:from_date]..params[:to_date])
end
什麼是避免這種糟糕的代碼,並檢查最好的辦法,如果參數是零在線(在where
)
你能證明此請求您的路由設置。 – 2014-10-01 18:01:11
你正在使用哪個版本的Rails? – Surya 2014-10-01 18:41:17
Rails 4 ............ – 2014-10-01 18:48:13