Ruby on rails rails_admin处理外键故障

Ruby on rails rails_admin处理外键故障,ruby-on-rails,rails-admin,Ruby On Rails,Rails Admin,我有一个Rails4应用程序,它使用rails_admin gem和MySql数据库 我有一个用户模型,它有许多工作。现在,在rails_admin dashboard中,用户可以正常删除,除非它有一些作业。在这种情况下,外键失败,因为在关系上没有定义dependent::destroy这是预期行为 但是,我不想得到“无法删除或更新父行:外键约束失败”错误,而是想显示一条好消息:“如果用户有作业,则无法删除它” 在rails\u admin中是否有一种优雅的方法可以实现这一点,而无需进行自定义操

我有一个Rails4应用程序,它使用rails_admin gem和MySql数据库

我有一个用户模型,它有许多工作。现在,在rails_admin dashboard中,用户可以正常删除,除非它有一些作业。在这种情况下,外键失败,因为在关系上没有定义
dependent::destroy
这是预期行为

但是,我不想得到“无法删除或更新父行:外键约束失败”错误,而是想显示一条好消息:“如果用户有作业,则无法删除它”


rails\u admin
中是否有一种优雅的方法可以实现这一点,而无需进行自定义操作?

外键:{on\u delete::cascade}
添加到迁移中,例如:

class CreateComment < ActiveRecord::Migration[5.2]
  def change
    create_table :comments do |t|
      t.string :body
      t.references :post, foreign_key: { on_delete: :cascade }
      t.references :user, foreign_key: { on_delete: :cascade }

      t.timestamps
    end
  end
end
classcreatecomment
您不能自定义rails\u admin的flash错误消息,但您可以导致错误并重定向到
用户的索引页,而不是引发异常:

has_many :jobs, dependent: :restrict_with_error

您可以尝试进行验证,困难的部分是仅针对rails管理员发起的更改运行此验证。这将需要修改参数,在rails管理员用户编辑中发送一个自定义参数,然后在用户上添加一个attr_访问器以匹配此参数。一点也不优雅。我不想在删除时级联,我只想显示一条更友好的错误消息,它不能被删除