Rails 3.1, has_many: through, habtm - PullRequest
       0

Rails 3.1, has_many: through, habtm

1 голос
/ 21 января 2012

У меня есть следующие модели:

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 Ответ

1 голос
/ 23 января 2012

Согласно http://guides.rubyonrails.org/association_basics.html#choosing-between-has_many-through-and-has_and_belongs_to_many вы должны использовать has_many-through вместо отношения habtm (как вы это делали в своем вопросе).Затем вы можете просто использовать этот код для установки отношения между деталью и сборкой:

#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!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...