什么是ruby类中调用的属性

时间:2016-01-22 21:32:13

标签: ruby class

红宝石中的validates是什么,而不是铁轨?它是一个类变量,还是某种代码,不需要在def initialize类的Person方法中?

class Person < ActiveRecord::Base
  validates :name, presence: true
end

2 个答案:

答案 0 :(得分:4)

这是类方法。它的接收器是类Person。允许省略self接收器,省略括号,当键是符号时要省略的散列中的箭头,以及在最终参数位置中省略的散列文字的大括号使得这样的DSL可能。如果您以普通方式完全编写方法调用,它将如下所示:

Person.validates(:name, {:presence => true})

答案 1 :(得分:0)

验证是特定于rails的。

Here它位于rails api docs

Here它位于GitHub

您可以通过创建在初始化时运行的方法编写自己的没有rails的验证器,如果不符合条件则抛出异常。