我目前正在开展一个项目,以显示具有多个选项的问题,并且每个选项都有一个 display_type。 (例如,一个问题有 4 个选项,所有选项都带有 display_type: "stars"),应该给出如下视图所示的结果:
由于此代码 (haml) 在具有本地 answer_option 的循环中调用并导致以下 html 显示:
.match-form-item-stars
#{answer_option.title}
%fieldset{class:'rating'}
- 5.downto(1).each do |i|
= radio_button_tag answer_option.id, i
= label(answer_option.id,i)
<fieldset class="rating">
<input type="radio" name="34" id="34_5" value="5">
<label for="34_5">5</label>
<input type="radio" name="34" id="34_4" value="4">
<label for="34_4">4</label>
<input type="radio" name="34" id="34_3" value="3">
<label for="34_3">3</label>
<input type="radio" name="34" id="34_2" value="2">
<label for="34_2">2</label>
<input type="radio" name="34" id="34_1" value="1">
<label for="34_1">1</label>
</fieldset>
就像您在 html 代码中看到的那样,我无法摆脱标签中的 i 值,这并不是很花哨。我试过 content: '' in css => 不工作。试过 = label(answer_option.id,i,'') 也不起作用。
其次,params中发送给控制器的值为:"33"=>"4", "34"=>"2", "35"=>"5", "36"=>"2 ”。这样可行!但我希望它像“star-answers”一样被封装:{“33”=>“4”,“34”=>“2”,“35”=>“5”,“36”=>“ 2"}。如果我的选项显示为“display_type:checkbox”,我就成功了:
= check_box_tag('answer_option[]',answer_option.id,id: answer_option.id)
%label{for: answer_option.id}
但这是不同的,因为我只需要传递选中选项的 id 而不是值...
知道我应该做些什么来解决这两个问题吗? 提前致谢