1

我有类 filter_report.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

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

“公司不能空白”

4

4 回答 4

0

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

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

Errors实现了一大堆不同的方法,但你可能想要#[]

report.errors[:company_id] # => "company can't be blank"
于 2013-07-18T05:11:24.270 回答
0

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

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

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

现在你通过使用得到错误report.errors[:company_id][0]

于 2013-07-18T05:21:25.377 回答
0

将模型中的验证消息设置为

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

您可以在

 report.errors.messages[:company_id].first.to_s
于 2013-07-18T05:59:51.520 回答
0

为此,如果消息存在,您应该将消息传递给验证。代码将是这样的

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

检查消息

report.errors[:company_id]
于 2013-07-18T07:27:33.887 回答