我与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
我得到并且错误未定义的方法为'nil'创建
但是!如果我将关联更改为has_many用户,那么我现在可以预先形成上面的相同行。
任何人都可以解释为什么会这样吗?谢谢!
答案 0 :(得分:1)
问题是用户为零,因为您尚未为其分配值。 你应该使用类似的东西:
s.build_user(...)
或
s.create_user(...)