Как создать новый хеш из params? - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь создать новый хэш из params.Я делаю что-то вроде этого:

where_query = { active: true }
where_query[:brand_ids] = params[:brand_ids].split(',') if params[:brand_ids].present?
where_query[:market_id] = params[:market_id] if params[:market_id].present?

Это нормально?Или есть лучший способ сделать это?

1 Ответ

0 голосов
/ 26 сентября 2018

Я хотел бы пойти с более явным объявлением:

where_query =
  { 
    active: true,
    brand_ids: params[:brand_ids].try(:split, ','),
    market_id: params[:market_id]
  }.select { |_, v| v.present? }

Современная версия выше (требуется Ruby 2.4+):

where_query =
  { 
    active: true,
    brand_ids: params[:brand_ids]&.split(','),
    market_id: params[:market_id].presence
  }.compact
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...