Ruby on rails 未使用接受\u嵌套的\u属性\u正确创建联接模型

Ruby on rails 未使用接受\u嵌套的\u属性\u正确创建联接模型,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个用户模型和一个项目模型,并使用has_many:through将其与所有权模型结合起来。当我使用accepts\u nested\u attributes\u在用户和项目之间创建关联时,我试图设置所有权属性的值 以下是我的用户模型: class User < ActiveRecord::Base attr_accessible :name, :email, :admin, :projects has_many :ownerships has_many :project

我有一个用户模型和一个项目模型,并使用has_many:through将其与所有权模型结合起来。当我使用accepts\u nested\u attributes\u在用户和项目之间创建关联时,我试图设置所有权属性的值

以下是我的用户模型:

class User < ActiveRecord::Base
  attr_accessible :name, :email, :admin, :projects

  has_many :ownerships
  has_many :projects, :through => :ownerships

  accepts_nested_attributes_for :projects

出于某种原因,这不是创建所有权联接模型,也不是(显然)设置所有权模型的所有者类型值。我能做些什么来解决这个问题?

在您的创建方法中,您是否尝试过使用
:project\u id=>@project.id
而不是
:project=>@project
不,我没有。我有点搞不懂这个创意到底是怎么运作的。如果我通过了:project\u id=>@project.id,所有权模型会知道如何将正确的用户与正确的项目连接起来吗?我是否需要更改任何其他内容才能使其正常工作?我不确定您是否可以通过这样的关联设置多个属性。但也许我错了。
class Ownership < ActiveRecord::Base
  attr_accessible :owner_type

  belongs_to :project
  belongs_to :user

  validates :user_id, :presence => true

  validates :project_id, :presence => true

  validates :owner_type, :presence => true

end
class Project < ActiveRecord::Base
      attr_accessible :name, :description

      has_many :ownerships
      has_many :users, :through => :ownerships
current_user.ownerships.create(:owner_type => 'designer', :project => @project)