Post belongs_to :user
我想为已删除用户保留帖子的应用程序。在查看作者已被删除的帖子时,这可能会导致视图出现错误。我试图这样做:
class Post < ActiveRecord::Base
belongs_to :author, class_name: 'User', foreign_key: 'user_id'
def author
author || NullUser.new
super
end
end
这会导致“堆栈级别变深”错误。为什么?我可以这样做:
class Post < ActiveRecord::Base
belongs_to :user
def author
user || NullUser.new
end
def author=(user)
self.user = user
end
end
但以这种方式搅乱我的联想似乎并不正确。解决这个问题的最佳方法是什么?