【发布时间】:2015-02-26 20:15:14
【问题描述】:
我有一个使用 rails_admin gem 和 MySql 数据库的 Rails4 应用程序。
我有一个has_many Jobs 的 User 模型。现在,在 rails_admin 仪表板中,User 可以正常删除,除非它有一些 Jobs。在这种情况下,外键失败,因为没有在关系上定义dependent: :destroy。 这是预期行为。
但是,我不想得到“无法删除或更新父行:外键约束失败”错误,而是想显示一条很好的消息:“如果用户有作业,则无法删除用户”。
在rails_admin 中是否有一种优雅的方法可以在不进行自定义操作的情况下实现这一目标?
【问题讨论】:
-
您可以尝试验证,困难的部分是仅针对 Rails 管理员发起的更改运行此验证。这将需要弄乱参数以在 Rails 管理员用户编辑上发送自定义参数,然后在用户上添加 attr_accessor 以匹配此参数。远非优雅。