Я хотел бы знать, как успешно задать динамический запрос Active Record на основе наличия/существования параметров.строить динамические реквизиты запросов ActiveRecord
У меня есть этот запрос,
Animal.joins(:user).where(animal_type: params[:animal_type], rehomed: params[:rehomed], users: {town: params[:animal_town]})
Я пытался что-то вдоль этих линий, но мой синтаксис все неправильно, я считаю,
conditions = []
conditions << [ animal_type: params[:animal_type], ] if params[:animal_type].present?
conditions << [ rehomed: params[:rehomed], ] if params[:rehomed].present?
conditions << [ users: {town: params[:animal_town]} ] if params[:animal_town].present?
@animals = Animal.joins(:user).where(conditions)
Я не хочу, чтобы положить все это в вложенной хэш я?
Любая помощь приветствуется
Спасибо
Почему вы не хотите вкладывать его в вложенный хэш? Он должен быть во вложенном хеше. –
В вашем случае 'where' принимает хэш в любом случае. Таким образом, использование сильных параметров и самого параметра 'params' может быть способом. –
ОК, может быть, сегодня это не так, но для доступа к условиям хэш я бы сделал 'где (условия: условия)'? – Richlewis