我有一个属于User的Post模型
我显示用户名如下:@post.user.name
如果用户取消了他们的帐户,它将不再工作,因为该用户为零
有没有办法拥有后备用户(例如"已删除用户")?
我想禁用用户而不是删除他们,但在某些情况下,我可能想删除他们。
有一个称为Null模式的概念,您可以实现类似于的东西
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:)