ruby - 如何更改 rails_admin 中删除操作的自定义错误消息?
问题描述
在 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 中自定义错误消息?
解决方案
您只需要切换到使用带有自定义消息的验证
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
推荐阅读
- windows - 如何破解 Windows 用户空间中的麦克风驱动程序数据
- amazon-web-services - 在 ec2 上为 aws codedeploy 创建 bitbucket 管道时显示错误
- docker - lambda容器中的超时“导入张量流”
- php - Laravel Eloquent 多表
- javascript - 收到错误“请求的模块'./three-csg.js'不提供名为'CSG'的导出”
- javascript - 从 [JSON 文件] 访问数据时,它显示未定义 In react js
- php - 在单引号和双引号内插入 php
- node.js - NPM 包的 Render.com Nodejs 部署问题
- model-view-controller - MVC - 在加载期间显示与默认不同的视图
- excel - 使用vba在工作表中有序排列图表