RubyOnRails方法表示法

时间:2015-02-17 23:09:43

标签: ruby-on-rails ruby

我已经开始研究一些RubyOnRails(来自更多的Java / C#背景),我对于符号的一般共识是什么有一些疑问。

我一直在关注(http://guides.rubyonrails.org/getting_started.html)的Rails教程。 在5.10,他们通过

为他们的文章类添加了一些验证
validates :title, presence: true, 
                  length: { minimum: 5 }

但由于validates只是一种常规方法,我可以写

validates(:title, :presence => true, :length => { :minimum => 5 })
# or
validates(:title, { :presence => true, :length => { :minimum => 5 } })

上述哪种符号是普遍接受的?有什么缺点?

(另外,为什么我会在第二个例子中传递符号,但不会在第一个例子中传递?)

1 个答案:

答案 0 :(得分:2)

首选

以下语法
validates :title, presence: true, 
                  length: { minimum: 5 }

由于新的1.9哈希语法,你也传入了这个符号。见http://effectif.com/ruby/update-your-project-for-ruby-19-hash-syntax

您可以像这样编写相同的验证方法

validates :title, :presence => true, 
                  :length => { :minimum => 5 }

在这两个示例中,titlepresencelengthminimum都是符号