我的一行代码如下:
validates :price, :numericality => {:greater_than_or_equal_to => 0.01}
:price
是我定义的唯一符号。:numericality
并且:greater_than_or_equal_to
两者都有一些比较的意义。
- 这些东西叫什么?
- 我在哪里可以找到关于它们的文档?似乎有很多这样的符号会做随机的事情。这些是实例方法吗?我在哪里可以找到它们的列表?
我的一行代码如下:
validates :price, :numericality => {:greater_than_or_equal_to => 0.01}
:price
是我定义的唯一符号。:numericality
并且:greater_than_or_equal_to
两者都有一些比较的意义。
符号就像字符串。它们有时用于看起来像方法调用的结构中,但它们不是方法。
在您的情况下,方法validates
接受两个参数,一个符号和一个哈希。:numericality
并且:greater_than_or_equal_to
只是哈希中的键,仅此而已。将validates
如何处理它们,没有人知道(除了validates
它自己)。因此,为了找出答案,您需要阅读文档validates
(可能还有相关的 Rails 指南)。
此处的网页http://guides.rubyonrails.org/active_record_validations_callbacks.html应显示可用的验证。
您引用的符号本身没有“含义”,而是告诉方法在作为变量传递时要做什么。
Validates 只是一个方法调用,但在 ruby 中,括号是选项,有时将它们放入可以更容易地对其进行概念化,例如
validates(:price, :numericality => {:greater_than_or_equal_to => 0.01})