我有三个模型。两个通过has_and_belongs_to_many
关联与适当的连接表关联,一个通过has_many
关联关联。
class Item < ActiveRecord::Base
has_and_belongs_to_many :users
has_many :colors
end
class Color < ActivRecord::Base
belongs_to :item
end
class User < ActiveRecord::Base
has_and_belongs_to_many :items
end
我可以通过以下方式创建具有颜色的新项目:
@item = Item.new(name: "ball")
@item.users << @user
@item.save
@item.colors.create!(name: "blue")
该项目现在链接到由 引用的用户@user
。
但我认为必须有另一种方式来为用户创建项目,比如我添加颜色的方式。
@user.item.create!(name: "car")
这不起作用,因为已创建项目的 users-array 为空,并且该项目现在不属于用户。
这种方法有什么问题?