1

我正在使用simple_form并试图让自定义包装器工作。到目前为止没有运气。

我正在寻找一个简单的星级评分,每个值都有 5 个单选按钮。所需的输出:

<fieldset class="rating-new">
  <input type="radio" id="star5" name="rating" value="5" />
  <label class = "full" for="star5" title="Awesome - 5 stars"></label>

  <input type="radio" id="star4" name="rating" value="4" />
  <label class = "full" for="star4" title="Pretty good - 4 stars"></label>

  <input type="radio" id="star3" name="rating" value="3" />
  <label class = "full" for="star3" title="Meh - 3 stars"></label>

  <input type="radio" id="star2" name="rating" value="2" />
  <label class = "full" for="star2" title="Kinda bad - 2 stars"></label>

  <input type="radio" id="star1" name="rating" value="1" />
  <label class = "full" for="star1" title="Sucks big time - 1 star"></label>
</fieldset>

我正在使用simple_form-bootstrap并理解我需要创建一个自定义包装器来执行此操作,但我追了很多,似乎无法弄清楚。

关于如何实现这一目标的想法?

4

2 回答 2

3

感谢@HarlemSquirrel 提醒我collection_radio_buttons。我想为它创建一个自定义包装器,但我通过调整标签和样式来解决我想要的位置:

这是我如何让它工作的:

<%= f.collection_radio_buttons :rating, [[5], [4], [3], [2], [1]], :first, :last, item_wrapper_tag: false, boolean_style: :inline do |b| %>
  <%= b.radio_button + b.label {''} %>
<% end %>
于 2017-01-28T21:07:43.480 回答
0

您可以使用https://github.com/plataformatec/simple_form#collection-radio-buttons中的集合单选按钮

form_for @something_rated do |f|
  f.collection_radio_buttons :rating, [[1, '1'] ,[2, '2'],[3, '3'],[4, '4'],[5, '5']], :first, :last
end
于 2017-01-28T18:27:23.923 回答