I un'applicazione dove un Post belongs_to :user
Desidero conservare i post per gli utenti eliminati. Ciò può causare errori nella visualizzazione durante la visualizzazione di un post di cui è stato eliminato l'autore. Ho provato a fare questo:Implementazione di un pattern NullObject in Rails
class Post < ActiveRecord::Base
belongs_to :author, class_name: 'User', foreign_key: 'user_id'
def author
author || NullUser.new
super
end
end
Questo provoca un 'livello di stack per deep` errore. Perché? Ho potuto fare questo:
class Post < ActiveRecord::Base
belongs_to :user
def author
user || NullUser.new
end
def author=(user)
self.user = user
end
end
Ma non mi sembra giusto fare confusione con le mie associazioni in questo modo. Qual è il modo migliore per farlo?
Nota a margine: In relazione al NullObjects e appena uscito, [Nulla] (https://github.com/avdi/nulla) di Avdi Grimm. –