我有一个属于用户的Post模型
我显示这样的用户名:
@post.user.name
如果用户取消其帐户,则该用户将无法使用,因为该用户为零
有没有办法让后备用户(例如“删除用户”)?
我虽然关于禁用用户而不是删除它们,但在某些情况下我可能想删除它们。
答案 0 :(得分:0)
有一个名为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
通过这种方式,您永远不必检查帖子用户是否为零:)