用户可以回答一组问题。现在有些是文字,有些则是单选按钮。
我遇到的问题是为每个问题填充的单选按钮,当前似乎属于同一组。例如,如果我有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
答案 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>