标签: ruby class
红宝石中的validates是什么,而不是铁轨?它是一个类变量,还是某种代码,不需要在def initialize类的Person方法中?
validates
def initialize
Person
class Person < ActiveRecord::Base validates :name, presence: true end
答案 0 :(得分:4)
这是类方法。它的接收器是类Person。允许省略self接收器,省略括号,当键是符号时要省略的散列中的箭头,以及在最终参数位置中省略的散列文字的大括号使得这样的DSL可能。如果您以普通方式完全编写方法调用,它将如下所示:
self
Person.validates(:name, {:presence => true})
答案 1 :(得分:0)
验证是特定于rails的。
Here它位于rails api docs
Here它位于GitHub
您可以通过创建在初始化时运行的方法编写自己的没有rails的验证器,如果不符合条件则抛出异常。