Tôi là ứng dụng có số Post belongs_to :user
Tôi muốn giữ lại bài đăng cho người dùng đã bị xóa. Điều này có thể gây ra lỗi trong chế độ xem khi xem bài đăng có tác giả đã bị xóa. Tôi đã cố gắng thực hiện điều này:Thực hiện mẫu NullObject trong Rails
class Post < ActiveRecord::Base
belongs_to :author, class_name: 'User', foreign_key: 'user_id'
def author
author || NullUser.new
super
end
end
Điều này gây ra lỗi 'xếp chồng lên mức sâu'. Tại sao? Tôi có thể làm điều này:
class Post < ActiveRecord::Base
belongs_to :user
def author
user || NullUser.new
end
def author=(user)
self.user = user
end
end
Nhưng có vẻ như không gây rối với các liên kết của tôi theo cách này. Cách tốt nhất để giải quyết vấn đề này là gì?
Sidenote: Liên quan đến NullObjects và vừa xuất hiện, [vô] (https://github.com/avdi/naught) bởi Avdi Grimm. –