2012-10-10 2 views
0

QuestionAnswer과 같은 두 모델이있는 경우 Question에는 question_id, question_type, question_textAnswer과 같은 세 개의 열이 있으며 세 개의 값인 answer_id, question_id, answer_text이 있습니다.레일즈에서 루비의 연관성에 따라 다른 열의 값을 얻는 방법은 무엇입니까?

Answer 모델의 양식을 작성 중입니다.

예 : 여기

<%= f.text_field :question_id %>. 
<%= f.hidden_field :question_id %>. 

, 나는 question_type을 찾기 위해 hidden field을 사용하고 있습니다. map 메서드를 시도했지만 작동하지 않습니다. 그래서 누군가 question_type 값을 선택하도록 도와주세요. question_id.

감사

답변

1

당신이 컨트롤러에 답변을 당기는 때, 당신은 당신의보기에서 추가 질의없이 모두에 대한 전체 액세스 권한이 질문을 포함 할 수있다 :

컨트롤러에서 :

@answer = Answer.includes(:question).where(:id => params[:answer_id]) 

보기 :

<%= @answer.question.question_type %> 

새로운 답변 인 경우 만들 수 있습니다. 및 컨트롤러에에 질문을 전달합니다

@answer = Answer.new(:question => Question.find(params[:question_id])) 

그런 다음 양식에 당신이 액세스 할 수 있습니다 :

<%= @answer.question.question_type %> 
+0

약간 혼란 스럽습니다. 현재 양식이 응답 모델로 작업 중입니다. 새로운 또는 편집 동작에서 동일한 양식이 렌더링됩니다. 그래서, 사용자가 question_id를 선택하면, 나는 선택된 question_id와 일치하는 question_type의 값을 얻고 싶다. – Vinay

+0

답변 양식에 질문을 전달하지 않으시겠습니까? 어떤 질문에 대답하는 형식입니까? – iouri

1

는 iouri는 말에 편승하기 위해. 모델의 관계가 올바르게 설정되면 도트 표기법을 사용하여 answer_type을 answer.question.question_type과 같이 얻을 수 있어야합니다. 당신이 좋아하는 무언가를 필요

...

class Question < ActiveRecord::Base 
    has_many :answers 
    accepts_nested_attributes_for :answers 
end 

class Answer < ActiveRecord::Base 
    belongs_to :question 
end 

그래서이 당신에게 또한 answer.question.question_type를 호출하는 능력이 아니라 accepts_nested_attributes_for 줄 것이다 : 연결을 구축하는 데 도움이됩니다 답변을.

라이언 베이츠는 여기에 뛰어난 스크린 캐스트 http://railscasts.com/episodes/196-nested-model-form-part-1

행운이있다!

+0

감사합니다. lumbee .... – Vinay

관련 문제