Rails 多个评级星表

时间:2021-04-18 14:27:26

标签: ruby-on-rails haml

我目前正在开展一个项目,以显示具有多个选项的问题,并且每个选项都有一个 display_type。 (例如,一个问题有 4 个选项,所有选项都带有 display_type: "stars"),应该给出如下视图所示的结果:

enter image description here

由于此代码 (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 而不是值...

知道我应该做些什么来解决这两个问题吗? 提前致谢

0 个答案:

没有答案
相关问题