如何在rails_admin中的删除操作上更改自定义错误消息?

问题描述 投票:0回答:1

在rails_admin中删除一种项目之前,我已经过验证:

 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管理员视图上显示此自定义消息:“您不能删除主列表”

但是我却得到:

enter image description here

在rails_admin中可以通过任何方式自定义该消息吗?

ruby rails-admin ruby-on-rails-6
1个回答
0
投票

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

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
© www.soinside.com 2019 - 2024. All rights reserved.