假设rails select_tag的选择列表很长(> 20),则select菜单是UI的错误选择。
select_tag "brand", options_from_collection_for_select(@brands, "id", "logo")
但是,使用图像或简短单词,可以在网格中以更加用户友好的方式对其进行处理。使用CSS和/或框架,可以创建对象行。尽管rails有in_groups_of
方法会生成这些行,但是select tag documentation对此没有任何余地。
除了手动操作:
<select id="brand" name="brand">
<div class='row'>
<% @brands.in_groups_of(6, false) do |brands| %>
<% brands.each do |bs| %>
<div class='small-2 columns '>
<%= content_tag("option", image_tag(bs.image), options: {value: bs.id}) %>
</div>
<% end %>
<% end %>
</div>
</select>
是否有适当的Rails way
来实现这一目标?