【问题标题】:How to change the custom error message on delete operation in rails_admin?如何更改 rails_admin 中删除操作的自定义错误消息?
【发布时间】:2020-05-11 15:27:59
【问题描述】:

在 RailsAdmin 中删除一种项目之前,我有一个验证:

 before_destroy :dont_delete_master_list

 def dont_delete_master_list
    if name == MASTER_LIST_NAME
      errors.add :base, "You can't delete a Master List"
      throw(:abort)
    end 
  end

我想在 Rails 管理视图中显示此自定义消息:“您无法删除主列表”,但我得到的是:

如何在 RailsAdmin 中自定义错误消息?

【问题讨论】:

    标签: ruby rails-admin ruby-on-rails-6


    【解决方案1】:

    您只需切换到使用带有自定义消息的验证

    validate :dont_delete_master_list
    
     def dont_delete_master_list
        if name == MASTER_LIST_NAME
          errors.add :base, "You can't delete a Master List"
          throw(:abort)
        end 
      end
    

    您可能不想在 rails admin 之外运行此验证。如果是这种情况,您可以添加一个仅存在于 rails 管理表单上的虚拟字段。你可以这样做

    attr_accessor :edited_on_rails_admin
    
    rails_admin do
      edit do
        field :edited_on_rails_admin, :hidden do
          virtual?
          default_value true
        end
      end
    end
    

    然后在您的验证中使用该值

    validate :dont_delete_master_list, if: edited_on_rails_admin
    

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多