我有类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]