Rails拥有并且属于许多不保留关系信息

时间:2016-02-28 13:33:02

标签: ruby-on-rails activerecord has-and-belongs-to-many

鉴于以下模型

class User < ApplicationRecord
  has_and_belongs_to_many :workspaces
end

class Workspace < ApplicationRecord
  has_and_belongs_to_many :users
end

此代码会将记录插入workspacesusers_workspaces

User.last.workspaces.create

但是,这个不插入users_workspaces

User.last.workspaces.new.save

我需要这样做:

w = Workspace.new
w.users << User.last
w.save

为什么?

1 个答案:

答案 0 :(得分:0)

您需要使用#build方法,例如:

User.last.workspaces.build.save

collection.build(attributes = {})

  

返回集合类型的新对象,该对象已使用属性进行实例化,并通过连接表链接到此对象,但尚未保存。