首页 > 解决方案 > Rails 多个评级星形式

问题描述

我目前正在开发一个项目来显示具有多个选项的问题,并且每个选项都有一个 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,'') 也不起作用。

其次,参数中发送给控制器的值是:“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 而不是值...

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

标签: ruby-on-railshaml

解决方案


推荐阅读