将参数括起来,确保块与方法调用相关联。

17
class User
  scope :active, -> { where(active: true) }
end

运行rubocop时,我收到以下警告:

用括号括起参数-> { where(active: true) },以确保该块与->方法调用相关联。

我完全不知道我的scope定义与这个警告有什么关系。你呢?

除了关闭检查因为它目前没有意义之外,我应该如何修复这个警告?

2个回答

24

它希望你这样做:

scope :active, (-> { where(active: true) }) 

最好关闭警告 :)

这个刺人的lambda语法是完全没问题的。也许你使用的是旧版本的rubocop?

更新: 在0.49.0中已修复。


不用了,我有最新版本(来自4月3日的0.48.1)。8分钟后接受 :) - Andrey Deineko
5
修复已合并到 RuboCop 的主分支中,很快会发布新版本,请及时检查。 :) - Ilya
我该如何关闭这个警告?我应该在 .rubocop.yml 文件中放什么来修复它? - knagode
仍然在0.48.1版本中遇到这个问题,将禁用该功能。 - tirdadc
@tirdadc:是的,0.48.1版本仍然存在这个问题。你需要一个更新的版本。或者使用master分支。 - Sergio Tulentsev

4

gem update rubocop 对我很有效。


就我所知,这是正确的答案。 - ringe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接