当我尝试在控制台中删除用户记录时,我收到了主题错误,但我在用户模型中指定了删除依赖项。
为什么会发生这种情况?是否有某种我不知道的设计或sqlite配置?我也尝试过:destroy(配置文件控制器中的方法),:delete和:nullify。用户模型具有其他关联,但是当前在配置文件中只有一个具有该特定user_id的记录。当我使用user_id删除该配置文件记录时,我可以删除该用户。
*更新* 我终于想通了在控制台中调用User.last.delete(或代码中的User.delete)并没有在用户模型中调用依赖的:: delete回调。如果希望调用模型关联中的代码,请使用.destroy。
以下是简化代码:
class Profile < ApplicationRecord
belongs_to :user
end
class User < ApplicationRecord
has_one :profile, dependent: :delete_all
end