rails组合框,带有动态值

时间:2013-10-27 08:02:01

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我有以下代码为下拉列表创建动态值

<% @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 %>

但为什么上面的代码抛出语法错误。如何修改我的代码以使其工作。

1 个答案:

答案 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