我正在尝试从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?
可以吗?还是有更好的方法呢?
答案 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