6

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

これにより、'stack level to deep' エラーが発生します。なんで?私はこれを行うことができます:

class Post < ActiveRecord::Base
  belongs_to :user

  def author
    user || NullUser.new
  end

  def author=(user)
    self.user = user
  end
end

しかし、このように私の連想を台無しにするのは正しくないようです。これについて最善の方法は何ですか?

4

2 に答える 2