【问题标题】: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