Я хочу выбрать Cars
из базы данных, где предложение ищет лучший подход DRY для моей проблемы.Rails ActiveRecord где статья
, например, у меня есть эти два параметра
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
)
Можете ли вы показать параметры маршрута для этого запроса. –
Какую версию Rails вы используете? – Surya
Rails 4 ............ –