2013-08-16 4 views
0

HABTM 조인 테이블이 :inventory_items_shopping_lists 인 경우이 테이블에서 레코드를 만들고 호출하려면 어떻게합니까? 나는 조인 모델이 없다. 두 조인 된 모델은 :inventory_items:shopping_lists입니다. 사용자가 :shopping_lists:inventory_items을 추가하도록 허용하고 싶습니다. 미리 감사드립니다! 나는 그들이 :list_items 될 것 어디 :user:shopping_list:inventory_items를 추가하도록 시도하고있어레일스가 테이블 레코드 생성을 결합합니다

class InventoryItem < ActiveRecord::Base 

    belongs_to :item, :foreign_key => :item_id 
    belongs_to :vendor 
    has_many :list_items 
end 

class ListItem < ActiveRecord::Base 
    belongs_to :inventory_item, :foreign_key => :item_id 
    belongs_to :shopping_list 
end 

class ShoppingList < ActiveRecord::Base 
    has_many :list_items 
    belongs_to :user, :foreign_key => :user_id 
end 

: 여기

편집은 관련 모델과 내 목표입니다. list_items에는 :inventory_items이라는 거의 동일한 속성이 있으므로 :list_items 테이블의 속성을 복제하는 것보다 연관을 통해 해당 속성을 참조 할 가능성이 큽니다. 이것에 대한 생각이나 제안? 나는이 계획의 어떤 부분에 대한 피드백을 주시면 감사하겠습니다. 감사!

+1

네가 제대로 된 것처럼 보입니다. 'ListItem # created_at'를 추가하여 사용자가 쇼핑 목록에 항목을 추가 한시기를 알 수 있습니다. 당신이 필요로하는 것이 정확히있는 것 같습니다 (?) –

답변

1

이 테이블에서 레코드를 만들고 호출하려면 어떻게해야합니까?

기본적으로 HABTM 연결 유형을 사용하지 마십시오. 조인 테이블에 더 많은 상태를 저장하려면 표준 has_many (및 아마도 has_many :through)을 사용해야하므로 기본 조인 모델을 조작 할 수 있습니다.

이런 이유로 나는 HABTM의 팬이 아니 었습니다. 실제로 제작에 많은 수의 대형 Rails 응용 프로그램이 있었으며 HABTM을 사용한 적이 없습니다.

+0

아하나. 이걸 연구하면서 HABTM의 한계를보기 시작했는데, 당신은 단지 나의 의심을 확인했습니다. 조인 모델을 사용하면 (즉,': list_item'), inventory_item과 : list_item 모두 거의 동일한 속성을 갖게됩니다. 그것은 내 목표를 달성하는 데 낭비입니까, 아니면 필요한 중복입니까? 감사! – settheline

+0

@settheline 나는 당신이 목표하는 것을 정말로 따라하지 않습니다. 내 프로필로 이동하여 내 이메일을 받고, inventory_items 및 shopping_lists 정의로 이메일을 보내십시오. list_item을 사용하여 달성하려는 내용 –

+0

프로필에서 내 이메일 주소를 찾을 수 없어 관련성 높은 게시물을 게시했습니다. 모델 및 편집의 목표 고디 코디. – settheline

관련 문제