【问题标题】:Rails: Displaying state_machine validation errorsRails:显示 state_machine 验证错误
【发布时间】:2013-03-12 21:31:42
【问题描述】:

我正在使用state_machine 在 Ruby on Rails 中进行在线购买流程。其中一种状态包括用户填写带有账单信息的表格。此表单是必需的,因此我在转换到下一个状态时对其进行验证,如下所示:

state :confirm do
  validates_presence_of :name, :email
end

表单的状态为:info,下一个状态为:confirm

这很好用:如果缺少任何字段,state_machine 将不会转换到下一个状态。 但是,我找不到有关在验证返回 false 时如何显示错误通知的信息。我想在此验证失败时显示一条消息,并重定向到表单状态。提前感谢您的帮助!

【问题讨论】:

  • 假设你的意思是添加类似 在我看来,我试过了,它没有显示任何错误 :( 如果你的意思是别的,对不起,我理解错了!谢谢你的回复!

标签: ruby-on-rails validation error-handling state-machine


【解决方案1】:

(我想你早就解决了这个问题,但是......) 我认为这个答案与 state_machine 无关。这就是问题所在:

我想在验证失败时显示一条消息,并重定向到表单状态。

如果您重定向,对象会重新加载,所有未保存的属性都会丢失,任何验证错误也会丢失。

处理失败验证的标准方法是(重新)渲染编辑视图,而不是重定向到编辑操作。这会保留未保存的属性和验证错误。

【讨论】:

    猜你喜欢
    • 2013-12-25
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2022-06-20
    • 1970-01-01
    相关资源
    最近更新 更多