[英]Rails 3.1, has_many :through, habtm
I have the following models: 我有以下型号:
class Assembly < ActiveRecord::Base
has_many :manifests
has_many :parts, :through => :manifests
end
class Manifest < ActiveRecord::Base
belongs_to :assembly
belongs_to :part
end
class Part < ActiveRecord::Base
has_many :manifests
has_many :assemblies, :through => :manifests
end
Where manifests
contains: manifests
包含:
assembly_id
part_id
field1
field2
...
How can I update the others fields ( field1
, field2
...) using habtm? 如何使用habtm更新其他字段( field1
, field2
...)?
According to http://guides.rubyonrails.org/association_basics.html#choosing-between-has_many-through-and-has_and_belongs_to_many you have to use a has_many-through instead of a habtm relationship (as you did it in your question). 根据http://guides.rubyonrails.org/association_basics.html#choosing-between-has_many-through-and-has_and_belongs_to_many,您必须使用has_many-through而不是habtm关系(就像您在问题中所做的那样)。 Then, you can simply use this code to set up the relationship between a part and an assembly: 然后,您可以简单地使用以下代码来设置零件和装配体之间的关系:
#create assembly
ass1 = Assembly.new
ass1.save!
# create part
part_x = Part.new
part_x.save!
# create relationship between assembly and part using the join model Manifest
Manifest.new(assembly: ass1, part: part_x, field1: 1, field2: "test").save!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.