【问题标题】:Ruby on Rails style guidelines, parentheses around method parameters [closed]Ruby on Rails 样式指南,方法参数周围的括号 [关闭]
【发布时间】:2013-06-19 17:12:10
【问题描述】:
以下 ruby 样式指南 (https://github.com/bbatsov/ruby-style-guide) 声明如下:
- 对于作为内部 DSL 一部分的方法(例如 Rake、Rails、RSpec)、在 Ruby 中具有“关键字”状态的方法(例如 attr_reader、puts)和属性访问方法,请省略括号。在所有其他方法调用的参数周围使用括号。
我经历过关于 Rails 内部 DSL 的组成部分的争论。有人可以回答什么方法是 Rails 内部 DSL 的一部分吗?是否包含link_to 或I18n.t 之类的方法?哪些方法不是 Rails 内部 DSL 的一部分?
【问题讨论】:
标签:
ruby-on-rails
ruby
coding-style
【解决方案1】:
您引用的指南可能对此含糊不清。它没有定义“内部 DSL”的含义。那么应该如何解决呢?
首先,我想说的是,在这种情况下,保持一致比选择哪个答案更重要。
我想说,让我们看看 link_to “应该”是否有括号(同样,不是说只有一个正确答案)。可以进行更系统的研究,但我浏览了一些东西:
因此,对于这些高度轶事的“数据”,我会说没有括号。也许这意味着 *link_to* 是“内部 DSL”的一部分。如果是这样,那么至少您在视图中使用的内置方法(路径/URL 帮助程序、表单帮助程序等)可能也应该被考虑。
【解决方案2】:
我阅读的一条我喜欢的指南建议,如果方法简单或清晰,可以省略括号,但如果读者或编译器无法轻松识别参数或参数分组,则使用它。省略的原因是减少混乱并提高可读性,但不以失去清晰度为代价。
【解决方案3】:
注意样式指南纯粹是意见,例如,对于您提到的link_to 方法,我认为包含括号更清晰,但这纯粹是我的意见。 Rails DSL 非常广泛,并且确实包含您提到的方法。您可以查看api 以获取完整列表。