设计销毁用户在索引页面中创建错误

Devise destroy user create bug in index page

当我在 rails 上使用 Devise 删除用户时,我的本地网站出现问题。用户已正确删除,但现在,当我进入事件索引页面时,通常会列出所有事件,我收到此消息:

undefined method `pseudo' for nil:NilClass

因为被删除的用户在被销毁之前创建了事件,但是现在应用找不到事件的创建者等等...

我不知道如何解决它:
- 如果我想保留他创建的内容怎么办?
- 我应该同时删除用户删除的所有内容吗?

不知道我的问题是否清楚,希望有人能帮忙,谢谢!

Rails 给你两个选项,来自他们的指南:

https://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_one

has_one :credit_card, dependent: :destroy  # destroys the associated credit card
has_one :credit_card, dependent: :nullify  # updates the associated records foreign key value to NULL rather than destroying it

从评论中可以看出,第一个选项dependent: :destroy会在用户销毁时删除任何关联的内容。 dependent: :nullify 会将内容的 user_id 设置为 null

在你的情况下,它出现了一个用户has_many的内容?或者 has_one :content,无论哪种方式 dependent: :destroy 位都是相同的。销毁用户时销毁内容:

has_one :content, dependent: :destroy

has_many :contents, dependent: :destroy

并保留内容但将其所有者设置为零:

has_one :content, dependent: :mullify