我有以下代码为下拉列表创建动态值
<% @sub_category.dropdown_heads.each do |label| %>
<div class="input">
<div class="input-label"><label for="login"><%= label.head_name %></label></div>
<div class="input-txt">
<% options = options_from_collection_for_select(label.dropdown_lists, id, list_name) %>
<%= select_tag :test_name, options %>
</div>
</div>
<% end %>
以下代码有效
<% options = options_from_collection_for_select(@categories, 'id', 'name') %>
<%= f.select :category, options %>
但为什么上面的代码抛出语法错误。如何修改我的代码以使其工作。
答案 0 :(得分:1)
选择标记:
select_tag :test_name,options_for_select(categories_options(@categories)), :style=>"styles goes here", :class=>"class added here"
选项的格式为[[key,value],[key,value]]
您可以使用帮助程序生成它,将其放在应用程序帮助程序中:
def categories_options categories
categories.inject([]) do |memo, cat|
memo << [cat.name.titleize, cat.id]
end
end
所以它的格式如
select_tag name, select options, other options