• 总结一下: 首先感谢各位的帮助。 删除关联关系用户需要一般情况两种选择 1 逻辑删除,2 删除依赖 我在 model 定义了关联关系

    has_many :product, dependent: :restrict_with_error
    

    整理了一下关联的选项 :as :autosave :class_name :dependent :foreign_key :inverse_of :primary_key :source :source_type :through :validate  1、as:指明为多态关联  2、autosave:若设为 true,当 owner 实体做出某一操作时会自动保存或删除其关联实体的相应操作。  3、class_name:关联的实体名不能找到对应的实体,通过该属性设置实际的实体。  4、dependent:当 owner 实体被摧毁时,关联实体的行为:           destroy:所有关联实体被摧毁           delete_all:所有关联实体被直接从数据库删除,不可恢复           nullify:外键被设为 null,不可恢复           restrict_with_exception:抛出异常提示           restrict_with_error:抛出错误提示  5、foreign_key:定义外键的列名  6、inverse_of:指明反向关联的实体  7、primary_key:指明关联项的 id  8、through:指明多对多的关系使用的第三方实体  9、validate:如果设为 false,关联关系将会无效。 希望可帮到遇到同样问题的萌新

  • 解决问题了,感谢你的帮助,thanks

  • 谢谢您的回复,我这样写的

    class AdminUser < ApplicationRecord
      has_many :admin_users, dependent: :destroy
    end
    

    报错变成 PG::UndefinedColumn - ERROR: column admin_users.admin_user_id does not exist LINE 1: SELECT "admin_users".* FROM "admin_users" WHERE "admin_users... admin_user_id 是 Product 表里引用 admin_users 表外键关联

  • 非常感谢你的回复,请问 has_many :books, dependent: :destroy 这个语句在 model 里写吗?

  • 萌新不易,这个问题卡了好几天,各位大佬要是知道就评论吧,Thanks😶

  • 谢谢你的评论,我想做一下关联删除,可我找不到在哪里做,这个用的 ActiveAdmin

  • 逻辑删除也是个办法,可我找不到 ActiveAdmin 的 Controller 也找不到 CURD 处理的地方,这个项目用的 ActiveAdmin 的 gem 源,只有 model 和 app 下面的 admin 有 adminUser 其他没有,不知道从哪里入手😭 :期待大佬回复