Rails显示了创建自定义自类时的验证错误



我有类filter_port.rb

class FilterReport
  include ActiveModel::Validations
  attr_accessor :company_id
  validates :company_id, presence: true
  def initialize(options = {})
    options.each {
      |k,v|
      self.send( "#{k.to_s}=".intern, v)
    }
  end

如何调用FilterReport类来显示我的验证

我想展示

report = FilterReport.new
report.company_id = ""
report.valid? => false
report.save => undefined save

我想知道验证存在的信息。

"公司不能空白"

如果查看ActiveModel::Validations的文档,您会发现errors:

返回包含有关属性错误消息的所有信息的Errors对象。

Errors实现了一系列不同的方法,但您可能想要#[]:

report.errors[:company_id] # => "company can't be blank"

您可以使用report.errors获取错误。如果你想要错误消息,那么你可以使用report.errors.full_messages

要自定义错误消息,您可以编写

validates :company_id, presence: {:message => "Company can't blank"}

现在您可以使用report.errors[:company_id][0] 来获得错误

将Model中的验证消息设置为

validates :company_id, presence: {:message => "company can't blank"}

您可以在中获得错误消息

 report.errors.messages[:company_id].first.to_s

对于它,如果它存在,您应该将消息传递给验证。代码将像这个

validates :company_id, presence: {:message => "Company can't blank"}

检查消息

report.errors[:company_id]

最新更新