0

저는이 협회에서 저의 머리를 감싸려고 노력해 왔으며 약간의 걸림돌을 겪었습니다. 내가 작업하고있는 앱에는 현재 2 가지 모델이 있습니다 : 성분 및 조리법. 뒤에있는 논리는 다음과 같습니다.ActiveRecord associations, has_many_through

성분 모델에는 이름, 벌크 가격 등과 같은 식품 품목에 대한 정보가 들어 있습니다. 레시피 모델에는 레시피의 이름, 준비 지침 및 재료 목록이 들어 있습니다 레시피에 필요한 금액과 함께).

여기에있는 질문 중 일부를 파헤 치고 몇 가지 railscasts를 보았을 때 has_many_through 관계가 내가 수행하려고 시도하는 것이 더 좋을 수도 있다고 판단했습니다. 조리법에있는 성분 (필요한 금액). 이 지역 내 제한된 경험을 바탕으로

, 나는 이런 식으로 접근하고 싶습니다 : 어떻게 저장에는 Recipe_ID, ingredient_id, ingredient_qty (다음 ingredients_recipes 테이블과 유사한 필드를 것

class Recipe < ActiveRecord::Base 
    has_many :ingredients_recipes 
    has_many :ingredients, :through => :ingredients_recipes 
end 

class Ingredient_Recipe < ActiveRecord::Base 
    belongs_to :ingredient 
    belongs_to :recipe 
end 

class Ingredient < ActiveRecord::Base 
    has_many :ingredients_recipes 
    has_many :recipes, :through => :ingredients_recipes 
end 

을 특정 재료의 대부분이 제조법에 포함됨)

위에서 언급 한 기능을 기반으로 코드 방식으로 접근하는 적절한 방법입니까? 어떤 도움이라도 대단히 감사하겠습니다. 감사!

이 새로운 재료를 레시피 양식의 레시피에 추가 할 수 있기를 바랍니다. 이것이 throughs 테이블을 위해 accepts_nested_attributes_for를 할 필요가있는 것과 같이, 여분의 것을 필요로 할 것인가? 아니면 레일스가 자신의 것으로 처리 할 것인가? 하나의 객체가 제로를 가질 수 있습니다 또는 여러 다른 개체가 각 연결과 관련된 일부 속성이 있습니다 &를 연결했을 때

답변

0

:has_many through 접근 방식은 가장 잘 작동합니다.

예를 들어, 귀하의 경우, recipe_id와 함께 각 성분의 양을 Connections 테이블에 ingredients_id로 저장해야합니다.

그래서 나에게 잘 어울립니다. :)

그러나 Ingredient_Recipe 테이블을 더 적절한 이름으로 지정하는 것이 좋습니다.

+0

더 적절한 이름은 무엇입니까? – Onichan