我有一个属于用户的 Post 模型。
我这样显示用户名:
@post.user.name
如果用户取消了他们的帐户,它将不再起作用,因为该用户为零。
有没有办法让后备用户(例如“已删除用户”)?
我虽然关于禁用用户而不是删除它们,但在某些情况下我可能想删除它们。
我有一个属于用户的 Post 模型。
我这样显示用户名:
@post.user.name
如果用户取消了他们的帐户,它将不再起作用,因为该用户为零。
有没有办法让后备用户(例如“已删除用户”)?
我虽然关于禁用用户而不是删除它们,但在某些情况下我可能想删除它们。
有一个叫做 Null Pattern 的概念,你可以实现这样的东西
class NullAuthor
def name
"Deleted user"
end
end
你会在你的 ActiveRecord 模型中像这样使用它
class Post < ActiveRecord::Base
belongs_to :user
def author
@author ||= if user.present?
user
else
NullAuthor.new
end
end
end
这样,您就不必检查 post 用户是否为 nil :)