Ruby on Rails ActiveRecord验证

xpe*_*int 1 validation activerecord ruby-on-rails

我想在这样的函数中验证属性

class User < ActiveRecord::Base

  validate :check_name( :name )

  def check_name( name )
    ... if name is invalid ...
       self.errors.add( :name, 'Name is invalid')
  end

end
Run Code Online (Sandbox Code Playgroud)

你能写出正确的代码吗?请解释为什么...... THX的功能!

Sim*_*tti 6

class User < ActiveRecord::Base

  validate :check_name

  def check_name
    if name # is invalid ...
      self.errors.add(:name, 'Name is invalid')
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

您可以使用validate宏但该方法不能接受参数.您需要从方法内部获取属性值,然后验证它.

更换

if name # is invalid ...
Run Code Online (Sandbox Code Playgroud)

使用您自己的验证逻辑.