【问题标题】:rubocop string interpolation and size conditionrubocop 字符串插值和大小条件
【发布时间】:2016-04-18 22:21:05
【问题描述】:

在我除了这两种方法之前,我想看看社区中是否有人有更好的想法来构建这些方法并让警察通过。第一个 to_s 似乎也有点疯狂。我正在考虑重构另一种方法,但那将是一两行。

想法?

代码示例一:

  def destroy(resource_name, id)
    delete "#{resource_name.to_s.pluralize}/#{id}"
  end

代码示例二:

  def all_products
    products_map = fetch(:products).map { |x| [x['id'], x] }.to_h
    variants = fetch :variants
    variants.group_by { |x| x['product']['resource']['id'] }.to_a.map do |product_id, product_variants|
      product.merge 'variants' => product_variants if product == products_map[product_id]
    end.compact
  end

【问题讨论】:

  • 为什么要使用 RuboCop 输出的屏幕截图而不是将文本复制到问题中?

标签: ruby-on-rails rubocop ruby-style-guide


【解决方案1】:

对于代码示例一,也许可以使用:

delete [resource_name.to_s.pluralize, id].join('/')  

对于代码示例二,是的,您肯定需要重构它。
也许您需要为variants 部分创建一个单独的方法来执行所有分组和合并等操作。
我不确定这是否是一个好习惯,但您可以为其创建一个私有方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-06
    • 2021-10-06
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多