从params创建新哈希的方法是什么?

时间:2018-09-26 10:42:42

标签: ruby-on-rails ruby

我正在尝试从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 :(得分:4)

我将使用更明确的声明:

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
相关问题