2012-06-10 6 views
0

테이블에있는 관계 행을 반환하여 거기에 저장된 데이터에 액세스하는 간단한 방법이 있습니까?레일에서 관계 테이블의 단일 행 선택

두 모델은 has_many : through 및 세 번째 모델을 사이에 사용하여 관련이 있습니다. 내 모델은 User, Recipe 및 RecipeInfo로 구성됩니다.

는 지금, 특정 사용자의 레시피 정보를 원하시면 저장된 데이터에 액세스하기 위해,이

info = @user.recipeInfos.where("recipe_id=#{@recipe.id}")

간단한 방법이 있는지 궁금 해요에 대한 쿼리와 유사한 레일을 사용하고 있습니다 .where() 메소드를 사용하는 대신이 단일 행의 사용자 레시피 정보에 액세스해야합니다.

은 편집 :

recipe = Recipe.find(params[:id])

user = current_user

current_user이 때 사용자 로그에 sessions[:user_id] = current_user에 의해 정의된다

+0

약간의 코드 컨텍스트에서 어떤 레시피를 찾을 지 어떻게 결정됩니까 (@recipe는 어떻게 결정됩니까?). – cdesrosiers

+0

문맥을 바탕으로 제 질문을 수정했습니다. –

+0

왜'where'를 사용하고 싶지 않으십니까? '@ user.recipeInfos.where (: recipe_id => @ recipe.id) .first'는 당신이 걱정하는 것이면 자동으로 그것을 하나의 결과로 제한합니다. 왜 'recipeInfos'의 비정상적인 대문자가 아닌가요? – x1a4

답변

0

당신은 코드의 그 4 선 단지

info = current_user.recipeInfos.find_by_id(params[:id]) 
을 단축 할 수 있습니다.

.

+0

굉장합니다. 이것은 내가 찾고 있었던 바로 그 것이다. 고맙습니다. –

관련 문제