我有这个范围:
<span class="rating">
<tr>
<td>Quality</td>
<td><%= select_tag :quality, options_for_select(["1", "2", "3", "4", "5"]), { multiple: false } %></td>
</tr>
<tr>
<td>Cost</td>
<td><%= select_tag :cost, options_for_select(["1", "2", "3", "4", "5"]), { multiple: false } %></td>
</tr>
<tr>
<td>Time</td>
<td><%= select_tag :time, options_for_select(["1", "2", "3", "4", "5"]), { multiple: false } %></td>
</tr>
<tr>
<td>Experience</td>
<td><%= select_tag :experience, options_for_select(["1", "2", "3", "4", "5"]), { :multiple => false } %></td>
</tr>
<tr>
<td>Communication</td>
<td><%= select_tag :communication, options_for_select(["1", "2", "3", "4", "5"]), { :multiple => false } %></td>
</tr>
</span>
用于设置用户的某些评级参数。它只是在下拉列表中呈现,这是不好的。我决定使用基于星级的评分,并通过一些搜索找到nice article。
我确实正确放置了所有CSS,我可以看到明星应该显示并呈现为:
<span class="rating">
<input type="radio" class="rating-input"
id="rating-input-1-5" name="rating-input-1">
<label for="rating-input-1-5" class="rating-star"></label>
<input type="radio" class="rating-input"
id="rating-input-1-4" name="rating-input-1">
<label for="rating-input-1-4" class="rating-star"></label>
<input type="radio" class="rating-input"
id="rating-input-1-3" name="rating-input-1">
<label for="rating-input-1-3" class="rating-star"></label>
<input type="radio" class="rating-input"
id="rating-input-1-2" name="rating-input-1">
<label for="rating-input-1-2" class="rating-star"></label>
<input type="radio" class="rating-input"
id="rating-input-1-1" name="rating-input-1">
<label for="rating-input-1-1" class="rating-star"></label>
</span>
我尝试了几种方法,但我不确定如何将其改为:<%= select_tag :quality, options_for_select(["1", "2", "3", "4", "5"]), { multiple: false } %>
进入收音机,星星,输入。
我最接近的是:
<td>
<% [ '1', '2', '3', '4', '5' ].each do |quality| %>
<br><%= radio_button_tag 'quality', quality, @quality == quality, class: "rating-input" %>
<%= label_tag "rating_#{quality}", quality.humanize %>
<label for="rating-input-1-5" class="rating-star"></label>
<% end %>
</td>
任何指导都会非常感激。
答案 0 :(得分:1)
尝试以下方法:
1..5.each do |rate|
radio_button_tag 'quality', quality, resource.quality == quality, class: 'rating-input', id: "rating_quality_#{rate}"
label_tag "rating_quality_#{rate}"
end
为了便于阅读,我没有包含<%%>
标记。