我的代码行如下:
validates :price, :numericality => {:greater_than_or_equal_to => 0.01}
:price
是我定义的唯一符号。 :numericality
和:greater_than_or_equal_to
都有一些比较意义。
答案 0 :(得分:1)
符号就像字符串。它们有时用在看起来像方法调用的构造中,但它们不是方法。
在您的情况下,方法validates
接受两个参数,一个符号和一个哈希。 :numericality
和:greater_than_or_equal_to
只是哈希中的键,仅此而已。 validates
将对他们做什么,没有人知道(除了validates
本身)。因此,为了找到答案,您需要阅读validates
上的文档(以及相关的rails指南)。
答案 1 :(得分:0)
此处http://guides.rubyonrails.org/active_record_validations_callbacks.html的网页应显示可用的验证。
您所指的符号没有'含义'本身,但告诉方法作为变量传递时该做什么。
验证只是一个方法调用,但在ruby中,括号是选项,有时将它们放入使其更容易概念化,例如
validates(:price, :numericality => {:greater_than_or_equal_to => 0.01})