0

我有一个与 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

我得到并错误 Undefined method create for 'nil'

但!如果我将关联更改为 has_many 用户,那么我现在可以执行上述相同的行。

谁能解释为什么会这样?谢谢!

4

1 回答 1

1

问题是 user 是 nil 因为你没有给它赋值。你应该使用类似的东西:

s.build_user(...)

或者

s.create_user(...)
于 2013-10-10T09:59:53.907 回答