与同一形式的多个单选按钮标签问题

时间:2015-11-05 21:41:12

标签: ruby-on-rails

用户可以回答一组问题。现在有些是文字,有些则是单选按钮。

我遇到的问题是为每个问题填充的单选按钮,当前似乎属于同一组。例如,如果我有2个问题要求您使用单选按钮进行回答,那么您只能选择其中一个因为按钮已连接。

我不完全确定如何解决这个问题,这是我的看法:

       
  <% if question.text_based? %>
    <%= text_area_tag 'questions[][reply]', nil, class: 'form-control', "required" => true, rows: 2 %>
  <% else %>

    <% (question.min_number_range..question.max_number_range).each do |question_value| %>
      <%= label_tag 'questions[][reply]', class: 'question-value-label' do %>
        <%= question_value %>
        <%= radio_button_tag 'questions[][reply]', "#{question_value}" %>
      <% end %>
    <% end %>

  <% end %>
  

HTML输出:

<input type="hidden" name="questions[][id]" id="questions__id" value="5" />
<label class="question-value-label" for="questions__reply">
   <input type="radio" name="questions[][reply]" id="questions__reply_1" value="1" />
</label>          
<label class="question-value-label" for="questions__reply">
   <input type="radio" name="questions[][reply]" id="questions__reply_2" value="2" />
</label>          

<label class="question-value-label" for="questions__reply">
   <input type="radio" name="questions[][reply]" id="questions__reply_3" value="3" />
    </label> 
</label> 

<input type="hidden" name="questions[][id]" id="questions__id" value="6" />
<label class="question-value-label" for="questions__reply">
   <input type="radio" name="questions[][reply]" id="questions__reply_1" value="1" />
</label>          
<label class="question-value-label" for="questions__reply">
   <input type="radio" name="questions[][reply]" id="questions__reply_2" value="2" />
</label>

和我的控制器代码:

  def create
    @questions = current_user.questions
    params[:questions].map do |question|
      current_user.answers.create(
        question_id: question[:id],
        reply:       question[:reply],
        week_number: Time.zone.now.strftime('%V')
      )
    end
    redirect_to answers_path
  end

1 个答案:

答案 0 :(得分:0)

您需要为questions

编号
<input type="hidden" name="questions[0][id]" id="questions__id" value="5" />
<label class="question-value-label" for="questions__reply">
   <input type="radio" name="questions[0][reply]" id="questions__reply_1" value="1" />
</label>          
<label class="question-value-label" for="questions__reply">
   <input type="radio" name="questions[0][reply]" id="questions__reply_2" value="2" />
</label>          

<label class="question-value-label" for="questions__reply">
   <input type="radio" name="questions[0][reply]" id="questions__reply_3" value="3" />
    </label> 
</label> 

<input type="hidden" name="questions[1][id]" id="questions__id" value="6" />
<label class="question-value-label" for="questions__reply">
   <input type="radio" name="questions[1][reply]" id="questions__reply_1" value="1" />
</label>          
<label class="question-value-label" for="questions__reply">
   <input type="radio" name="questions[1][reply]" id="questions__reply_2" value="2" />
</label>