【问题标题】:Rails Model Validation error message is not displayed on the viewRails 模型验证错误消息未显示在视图上
【发布时间】:2015-10-22 21:15:12
【问题描述】:

我正在尝试在视图中显示验证错误。当我尝试保存此错误时,视图和日志中都会出现错误,而不是使用我的自定义消息additional filter type is required 这是我的代码

型号

 class AdditionalFilter < ActiveRecord::Base

 validates :additional_filter_type, presence:{ message: "additional filter type is required" }
 end

查看

   <% if @form.errors.any? %>
        <%= @form.errors%>    <!-- i know should just display an array -->
   <%end%>

我正在使用 Rails 4。任何帮助将不胜感激,甚至指导如何调试。谢谢

这是日志中的错误

 ActiveRecord::RecordInvalid - Validation failed: Additional filters   additional filter type additional filter type is required:
 activerecord (4.2.3) lib/active_record/validations.rb:79:in   `raise_record_invalid'
 activerecord (4.2.3) lib/active_record/validations.rb:43:in `save!'

【问题讨论】:

    标签: ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2 rails-activerecord


    【解决方案1】:

    您正在使用save!,这会引发异常,这将完全跳过您的视图。您应该使用save,并允许无效记录“通过”到您的视图中。

    【讨论】:

    • 谢谢。但我需要保存!根据我的情况。捕获错误的替代方法是什么?
    • 那么你需要真正捕捉错误。捕获save! 引发的异常并让视图被渲染。否则,您需要将错误报告移动到 rescue_from 处理程序中。
    • 谢谢...哪一个更容易和最安全?我听说过rescue_from,但从未使用过它
    猜你喜欢
    • 2017-10-19
    • 2022-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2017-03-11
    相关资源
    最近更新 更多