【问题标题】:How to get validations error messages in Ruby on rails?如何在 Ruby on rails 中获取验证错误消息?
【发布时间】:2019-05-21 12:09:59
【问题描述】:

我目前正在使用 OpenClassrooms 学习 Ruby on rails,他们正在使用这段代码:

validates :name, presence: {
    message: "Give a name"
}

当我尝试创建一个没有名称的对象时,我没有收到任何错误。例如:

me = Person.new name:""
me.errors.to_hash
=> {}

使用相同的示例(只是类不同),OpenClassrooms 出现错误,我不知道为什么我没有收到任何错误

【问题讨论】:

    标签: ruby-on-rails ruby validation


    【解决方案1】:

    验证后将错误添加到对象中。当您调用new 时,您并未验证任何内容,因此该对象没有错误。

    如果你尝试保存它然后检查错误,你会得到你想要的:

    me = Person.new name:""
    me.errors.to_hash
    => {}
    
    me = Person.new name:""
    me.save
    => false
    me.errors.to_hash
    => ActiveModel::Errors...
    

    【讨论】:

      【解决方案2】:

      在检查错误对象之前调用me.validate。您也可以拨打#valid?

      me = Person.new name: ""
      me.validate
      me.errors.to_hash
      => { ... }
      

      所有保存方法在内部调用这个#validate方法,如#save#save!

      【讨论】:

      • 这就是解决方案,谢谢! OpenClassrooms 没有提到(至少在我的语言中)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      • 2022-01-26
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多