나는 관계를 통해 has_many :를 위해 훌륭하게 작동하는 this tutorial을 팔로우하고 있습니다. category_product와 같은 정상적인 일이 있습니다.ActiveRecord와 동일한 모델에 대한 다 대다 연관?
그러나이 상황을 개념화 할 수 없으며 작동하지도 못합니다. 관련 카테고리가있는 카테고리가 있습니다. 모든 카테고리가 N 개의 카테고리를 가질 수 있기 때문에, 우선 이것이 실제로는 다 대다 (many-to-many) 상황입니까? (나는 그것이 꽤 긍정적입니다)? 둘째, 어떻게 생겼을까요? 내 마이그레이션은 다음과 같습니다
create_table :categories do |t|
t.string :name
t.timestamps
end
create_table :related_categories, :id => false do |t|
t.integer :category_a_id
t.integer :category_b_id
end
내 모델의 내장은
has_many :related_categories, :foreign_key=>"category_a_id"
has_many :categories, :through => :related_categories, :source=>:category_a
있는이 거기 점점 불구하고 (즉, 그것은 100 % 생겼습니다), 분명 옳지 않다. 어떻게해야합니까?
편집
: 나는이 잊고 있지만 여기에 SO에 (의미는 답이 아니다) :class RelatedCategory < ActiveRecord::Base
belongs_to :category_a, :class_name=>"Category"
belongs_to :category_b, :class_name=>"Category"
end
+1 감사합니다. 그 일은하지 않았지만 나는 다시 전체 관계를 보려고합니다. CategoryA를 사용했을 때 실제로 효과가 있었지만 관계의 다른면은 절대로 얻지 못했습니다. 좀 더 테스트 할거야. –
죄송합니다. 귀하의 답변은 맞지만 절반은 이야기입니다. 나머지 절반은 내 답변에 (아래) ...하지만 그래, 아주 멋진, 고마워. –