儘管在這裏查看了一些關於rails中的空對象的答案,但我似乎無法讓它們工作。Rails中關聯的空對象模式
class User < ActiveRecord::Base
has_one :profile
accepts_nested_attributes_for :profile
def profile
self.profile || NullProfile #I have also tried
@profile || NullProfile #but it didn't work either
end
end
class NullProfile
def display #this method exists on the real Profile class
""
end
end
class UsersController < ApplicationController
def create
User.new(params)
end
end
我的問題是,在用戶創作,我通過在適當的嵌套屬性(profile_attributes)的個人資料,我結束了我的新用戶NullProfile。
我猜測這意味着我的自定義配置文件方法正在調用創建並返回一個NullProfile。我該如何正確執行這個NullObject,這樣纔會在讀取時發生,而不是在初始創建對象時發生。