具有多态关联的ActiveRecord未知属性

时间:2014-01-29 22:02:36

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord

我有以下型号

 class Business < ActiveRecord::Base
   has_one :name_object, as: :nameable
 end

 class NameObject < ActiveRecord::Base
   has_one :user
   belongs_to :nameable, polymorphic: true
 end

但是,当我尝试使用名称和用户构建业务时,如下所示:

 business = Business.new
 business.build_name_object
 business.name_object.build_user

Rails抛出错误ActiveRecord::UnknownAttributeError in BusinessesController#new unknown attribute: name_object_id

我已为nameable_id表创建了包含nameable_typename_objects列的数据库,但我认为我不需要业务上的name_object_id外键表也​​是。我错过了什么?

1 个答案:

答案 0 :(得分:2)

看起来像你的NameObject has_one :user,用户将是belongs_to :name_object的用户,因此Rails正在寻找name_object_id作为用户表中的字段并将其抛出错误。只是预感,或许,发布您的用户型号代码。