Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 分配具有多个贯穿关系的属性_Ruby On Rails_Ruby_Ruby On Rails 3_Activerecord - Fatal编程技术网

Ruby on rails 分配具有多个贯穿关系的属性

Ruby on rails 分配具有多个贯穿关系的属性,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我只是想知道是否有人可以向我解释如何在两个对象之间创建一个关系(编程示例会很有帮助,因此我可以在rails控制台中进行测试),其中关系被定义为一个has_many:through,并具有其他属性。对象定义如下: class Item < ActiveRecord::Base has_many :collections, :through => :collection_items end class项:集合\u项 结束 类集合:集合\u项 结束 class Collect

我只是想知道是否有人可以向我解释如何在两个对象之间创建一个关系(编程示例会很有帮助,因此我可以在rails控制台中进行测试),其中关系被定义为一个has_many:through,并具有其他属性。对象定义如下:

class Item < ActiveRecord::Base
  has_many :collections, :through => :collection_items
end
class项:集合\u项
结束

类集合:集合\u项
结束

class CollectionItem
试试这个:

CollectionItem.create(item_id: Item.first, collection_id: Collection.first, quantity: 999)

只需将“
项。first
”和“
集合。first
”替换为获得正确项和集合所需的任何逻辑。

好,因此在本例中,我们创建关系对象,而不是将一个成员添加到另一个集合中(在我的示例类中使用collection可能不是一个好名字,这里指的是对象集合,即items,collections)?我认为您也可以编写类似于:
Item.collectionItems.create(数量:999,集合id:collection.first)
class CollectionItem < ActiveRecord::Base
  belongs_to :collection
  belongs_to :item

  attr_accessible :collection_id, :item_id, :quantity
end
CollectionItem.create(item_id: Item.first, collection_id: Collection.first, quantity: 999)