0
我有一個has_one的多態關聯,當嘗試通過關聯創建時,它給了我一個錯誤。與has_one的多態關聯,不能通過關聯創建
class User < ActiveRecord::Base
belongs_to :userable, polymorphic: true
end
class Student < ActiveRecord::Base
attr_accessible :gender, :description, :dob
has_one :user, :as => :userable
end
如果我嘗試這樣做:
s = Student.new
s.user.create
我得到和錯誤未定義的方法創造 '零'
但是!如果我將關聯更改爲has_many用戶,那麼現在我可以在上面執行同樣的操作。
任何人都可以解釋爲什麼發生這種情況?謝謝!
完美!我不明白的是,當我使用has_many時,用戶數組也是零,但它仍然允許創建.. –
@UriKlar太棒了!當你使用has_many時,關聯被初始化爲一個空數組,這就是爲什麼你能夠調用它的方法,因爲它不是零。使用'has_one'關聯無法自動初始化,您必須調用其中一個輔助方法(build_xxx,create_xxx)或者像x.foo = Foo.new那樣顯式指定它 –