:greater_than_or_equal_to,:数字和其他有意义的符号

时间:2013-04-04 07:17:45

标签: ruby-on-rails ruby symbols

我的代码行如下:

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

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

  1. 这些东西叫什么?
  2. 我在哪里可以找到有关它们的文档?似乎有很多这些符号随机出现。这些实例方法是?我在哪里可以找到它们的清单?

2 个答案:

答案 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})