0

我的一行代码如下:

validates :price, :numericality => {:greater_than_or_equal_to => 0.01}

:price是我定义的唯一符号。:numericality并且:greater_than_or_equal_to两者都有一些比较的意义。

  1. 这些东西叫什么?
  2. 我在哪里可以找到关于它们的文档?似乎有很多这样的符号会做随机的事情。这些是实例方法吗?我在哪里可以找到它们的列表?
4

2 回答 2

1

符号就像字符串。它们有时用于看起来像方法调用的结构中,但它们不是方法。

在您的情况下,方法validates接受两个参数,一个符号和一个哈希。:numericality并且:greater_than_or_equal_to只是哈希中的键,仅此而已。将validates如何处理它们,没有人知道(除了validates它自己)。因此,为了找出答案,您需要阅读文档validates(可能还有相关的 Rails 指南)。

于 2013-04-04T07:22:17.727 回答
0

此处的网页http://guides.rubyonrails.org/active_record_validations_callbacks.html应显示可用的验证。

您引用的符号本身没有“含义”,而是告诉方法在作为变量传递时要做什么。

Validates 只是一个方法调用,但在 ruby​​ 中,括号是选项,有时将它们放入可以更容易地对其进行概念化,例如

validates(:price, :numericality => {:greater_than_or_equal_to => 0.01})
于 2013-04-04T07:21:58.880 回答