그것은 has_and_belongs_to_many
때문에보다 :through
옵션을 has_many
을 사용하는 아마 훨씬 더 낫다 더 유연하며이 다양성의 복잡성을 피할 수 있습니다.
두 주된 차이점은 has_many
버전에 id
기본 키 열이 있으므로 레코드를 주소 지정이 가능하며 일류 모델이므로 속성을 쉽게 업데이트 할 수 있습니다. has_and_belongs_to_many
방법으로 쉽게이 구조에 삽입
class Household < ActiveRecord::Base
has_many :household_appliances
has_many :appliances, :through => :household_appliances
end
class HouseholdAppliance < ActiveRecord::Base
belongs_to :household
belongs_to :appliance
end
class Appliance < ActiveRecord::Base
has_many :household_appliances
has_many :households, :through => :household_appliances
end
와 동일 : 여기
은 샘플 정의의 당신은 이런 관계를 저장할 필요가 없습니다
household = Household.first
household.appliances << appliance
household.appliances.count
# => 1
, 그 수행 자동으로 당신을 위해. 항상 log/development.log
의 출력을 검사하여 INSERT
문이 만들어야 할 레코드를 나타내는 지 확인하십시오.
'save' 메소드를 사용해 보셨습니까? –
어떻게 저장하려고 했습니까? – leenasn