2012-01-21 3 views
1
나는 다음과 같은 모델이

:레일 3.1, has_many : 통해, HABTM

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 

manifests 포함 : 나는 다른 필드를 업데이트 할 수있는 방법

assembly_id 
part_id 
field1 
field2 
... 

을 (field1, field2 ...) habtm 사용?

답변

1

http://guides.rubyonrails.org/association_basics.html#choosing-between-has_many-through-and-has_and_belongs_to_many에 따르면 당신은 질문에서했던 것처럼 habtm 관계 대신에 has_many-through를 사용해야합니다. 그런 다음이 코드를 사용하여 파트와 어셈블리 간의 관계를 설정하면됩니다.

#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!