与has_one的多态关联,不能通过关联创建

时间:2013-10-10 09:45:07

标签: ruby-on-rails polymorphic-associations 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

我得到并且错误未定义的方法为'nil'创建

但是!如果我将关联更改为has_many用户,那么我现在可以预先形成上面的相同行。

任何人都可以解释为什么会这样吗?谢谢!

1 个答案:

答案 0 :(得分:1)

问题是用户为零,因为您尚未为其分配值。 你应该使用类似的东西:

s.build_user(...)

s.create_user(...)