在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管理员视图上显示此自定义消息:“您不能删除主列表”
但是我却得到:
在rails_admin中可以通过任何方式自定义该消息吗?
您只需要切换以使用带有自定义消息的验证
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