Ruby on Rails风格指南,方法参数周围的括号

3
以下 Ruby 风格指南(https://github.com/bbatsov/ruby-style-guide)规定如下:
  • 对于属于内部 DSL 的方法(例如 Rake、Rails、RSpec),具有 Ruby 中“关键字”状态的方法(例如 attr_reader、puts)和属性访问方法,省略参数周围的括号。在所有其他方法调用的参数周围使用括号。
我曾经亲身经历过关于哪些方法属于 Rails 内部 DSL 的争论。有人能回答一下哪些方法属于 Rails 内部 DSL 吗?它是否包括像 link_toI18n.t 这样的方法?哪些方法不属于 Rails 内部 DSL?
3个回答

1
您所参考的指南在这个问题上有些含糊不清。它没有定义“内部DSL”的含义。那么您该如何解决呢?
首先,我想说,在这种情况下保持一致性比选择哪个答案更重要。
我认为,让我们找出link_to是否应该有括号(再次强调,并不是说有一个正确的答案)。可以进行更系统化的研究,但我浏览了一些内容:
- Rails指南在*link_to*中使用括号,至少我看到的章节都没有(例如,请参见http://guides.rubyonrails.org/layouts_and_rendering.html) - 我浏览了github上来自thoughtbotpivotal的几个项目。我随机选择了一个Rails项目,然后在该存储库中搜索*link_to*。thoughtbot项目100%没有括号。pivotal的14个中只有1个有括号。
因此,根据这些高度传闻式的“数据”,我会建议不要使用括号。也许这意味着*link_to*是“内部DSL”的一部分。如果是这样的话,那么至少在视图中使用的内置方法(路径/URL助手、表单助手等)也应该被认为是如此。

1
我读过一份指南,很喜欢其中的建议:如果方法简单或清晰,可以省略括号,但如果读者或编译器无法轻松识别参数或参数组合,则应使用括号。省略的原因是为了减少混乱并增强可读性,但不会以失去清晰度为代价。

0
注意,风格指南纯粹是个人意见。例如,对于你提到的link_to方法,我认为包括括号更加清晰,但这仅仅是我的个人意见。Rails DSL非常广泛,并且包含了你提到的方法。你可以查看api以获取完整列表。

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