在Rails应用程序中调用方法时,常规使用括号是什么?

Onl*_*ere 0 ruby methods coding-style ruby-on-rails

绝大多数Rails商店做什么?由于Ruby允许我确定有一套标准我应该注意养成习惯,因为我刚开始使用Rails.

根据Pragmatic Agile Web Development with Rails(第4版):

在Rails应用程序中,您会发现大型表达式中涉及的大多数方法调用都有括号,而那些看起来更像命令或声明的方法调用往往没有它们.

那是哪个呢?或者它是狂野的西部吗?

dca*_*man 6

Rails的贡献风格指南似乎青睐

my_method(my_param)
Run Code Online (Sandbox Code Playgroud)

过度

my_method my_param
Run Code Online (Sandbox Code Playgroud)

但是我见过的大多数代码似乎都没有这种趋势.我肯定会说你不应该使用开括号来进行没有参数的方法调用.我注意到的一个指导原则是强调代码人类的可读性.这导致我得出以下结论:

如果您的方法调用没有参数,请不要使用括号

my_object.my_method
Run Code Online (Sandbox Code Playgroud)

您的方法调用是唯一的事情

my_object.my_method my_params
form.submit "Create"
Run Code Online (Sandbox Code Playgroud)

如果您的方法调用与许多方法调用位于同一行,请使用括号

my_object.parse(my_arguments).join(", ").chomp
Run Code Online (Sandbox Code Playgroud)

但是,对于不同情况有不同的约定,您可能只能通过查看大量代码才能看到这些约定.例如,在类定义中执行的方法通常不使用括号,并且每个参数都在不同的缩进行中:

validates     :first_name,
              :presence => true,
              :format => { :with => /\S./ }
Run Code Online (Sandbox Code Playgroud)