simple_form(星级)的多个单选按钮
Multiple radio buttons with simple_form (Star Rating)
我正在使用 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
并且我知道我需要创建一个自定义包装器来执行此操作,但我一直在追逐它,但似乎无法弄清楚。
关于如何实现这一目标的想法?
您可以使用 https://github.com/plataformatec/simple_form#collection-radio-buttons
中的 collection 单选按钮
form_for @something_rated do |f|
f.collection_radio_buttons :rating, [[1, '1'] ,[2, '2'],[3, '3'],[4, '4'],[5, '5']], :first, :last
end
感谢@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 %>
我正在使用 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
并且我知道我需要创建一个自定义包装器来执行此操作,但我一直在追逐它,但似乎无法弄清楚。
关于如何实现这一目标的想法?
您可以使用 https://github.com/plataformatec/simple_form#collection-radio-buttons
中的 collection 单选按钮form_for @something_rated do |f|
f.collection_radio_buttons :rating, [[1, '1'] ,[2, '2'],[3, '3'],[4, '4'],[5, '5']], :first, :last
end
感谢@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 %>