设计销毁用户在索引页面中创建错误
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
当我在 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