2016-09-20 3 views
0

자, 여기 내 코드가 있습니다.사용자 정의 속성을 form_for에 어떻게 추가합니까?

<%= form_for @quiz do |f|%> 
    <% @questions.shuffle.each do |q| %> 
    # get_answers returns an array of 4 random answers 
    <% answers = q.get_answers %> 
    <%= f.label q.inquest %><br> 
    <% answers.each do |a| %> 
     <%= f.radio_button <need help here!>, a %> 
     <%= f.label <need help here!>, a %><br> 
     <%= f.hidden_field <need help here!>, q.id %> 
    <% end %> 
    <% end %> 
<% end %> 

내 퀴즈 테이블은 어떻게 정의 내가 포스트 행동에 액세스 할 수있는 속성을 추가하려면 속성

concept_id 
user_id 

이있다? 얼마나 많은 질문이 있는지와 함께 확장 될 수 있도록 동적이어야합니다. 나는이 같은 것을 내 params에 원한다.

{ 
    user_answers: { 
    question1: { 
     :question_id 
     :answer 
    { 
    } 
} 

이 얼마나 많은 질문에 따라서는 radio_button 답을 수행 할 때 question_id으로 수행 할 것입니다 .. question1, 2, 3, 4 등 같은

hidden_field 갈 것입니다. 나는 그것을 구할 필요가 없다. 나는 그들에게 접근 할 필요가있다.

+0

안녕 f.radio_button와 스택 오버플로에 오신 것을 환영합니다. 멋지다 - 좋아 보인다. 그래서 나는'each_with_index'를 사용하여 시작할 것이다. (당신은 당신이 어떤 답을했는지 알기 때문에) 그리고 form-field의 이름의 일부로 인덱스를 사용한다. 예 :'<% = f.hidden_field "question_id _ # {idx}", : value => q.id %>' –

+0

고마워! 방금 추가 한 결과, 라디오 버튼에 대해 <% = f.radio_button "answer # {index + 1}", a %>'를 추가했지만 정의되지 않은 메소드 오류가 발생했습니다. @quiz에 대한 속성이 아니기 때문에 "answer # {index + 1}"이 (가) 있기 때문입니다. 어떻게 그 일을 할 수 있을까요? – LeongZeno

+0

발견 한대로'form_for' 버전 대신'_tag' 버전을 사용합니다 :) –

답변

1

좋아, 그래서 나는 그 폼 태그를 f에 부르면 안된다는 것을 깨달았다. 대신 자신의 양식 태그 예를 들어

로 있습니다

radio_button_tag 대신

관련 문제