Ruby on rails 3 向自定义验证器添加错误消息

Ruby on rails 3 向自定义验证器添加错误消息,ruby-on-rails-3,rspec2,customvalidator,custom-errors,Ruby On Rails 3,Rspec2,Customvalidator,Custom Errors,我有一个自定义验证器,当它失败但无法执行时,我试图输出一条错误消息。有没有人能告诉我我是在正确的地方做的 class User < ActiveRecord::Base self.table_name = "user" attr_accessible :name, :ip, :printer_port, :scanner_port validates :name, :presence => true,

我有一个自定义验证器,当它失败但无法执行时,我试图输出一条错误消息。有没有人能告诉我我是在正确的地方做的

class User < ActiveRecord::Base
  self.table_name = "user"

  attr_accessible :name, :ip, :printer_port, :scanner_port

  validates :name,        :presence => true,
                          :length => { :maximum => 75 },
                          :uniqueness => true                          

  validates :ip,          :length => { :maximum => 75 },
                          :allow_nil => true     

  validates :printer_port, :presence => true, :if => :has_association? 

  validates :scanner_port, :presence => true, :if => :has_association?          

  def has_association?
    ip != nil
  end
end
但是收到一个错误

Unknown validator: 'MessageValidator'

当我试图把消息放在验证器的末尾,用逗号分隔has_关联?将问号和逗号变成橙色

消息和
if
参数应位于存在状态的散列中:

validates :printer_port, :presence => {:message => "can't be blank", :if => :has_wfm_association?}
这是因为您可以在一行中加载多个验证:

validates :foo, :presence => true, :uniqueness => true
如果您试图以这种方式添加消息,或者添加
If
条件,Rails将不知道将消息/条件应用于什么验证。因此,您需要设置每次验证的消息:

validates :foo, :presence => {:message => "must be present"},
                :uniqueness => {:message => "must be unique"}

我不需要在在场的情况下包含真实的陈述吗?我什么时候做这个?散列的结尾一起运行,并且都变成橙色。只需要放置空格,谢谢你的帮助,迪伦非常感谢:)
validates :foo, :presence => {:message => "must be present"},
                :uniqueness => {:message => "must be unique"}