0

我正在编写一个应用程序,允许您上传照片并将它们分配给Bus我想要的是一个包含所有名称值的下拉菜单。总线可以启用也可以不启用。我想将列表限制为仅启用的总线。但是我不确定如何以下拉菜单的形式进行操作。

这就是我所知道的:

    <% Bus.find(:all, :conditions => {:is_enabled => 1).each do |bus| %>
      <%= bus.name %>
    <% end %>

但是我不知道如何将这段代码放在一个表单中,而不会使它以各种不同的方式中断,而且我不知道有任何其他方式来获取这些名称。此应用程序使用旧版本(Rails 2.3.15)。

这是我对如何做到这一点的最佳猜测:

<% form_for @bus_image, :html => { :multipart => true } do |f| -%>
  <%= f.error_messages %>

    <div class="field">
       <%= f.label :name %><br />
       <% Bus.find(:all, :conditions => {:is_enabled => 1}).each do |bus| %>
       <%= select(bus.name) %>
       <% end %>
     <div>

<% end -%>

...这给了我wrong number of arguments (1 for 3)

谢谢,如果您需要/想要更多信息,请告诉我。

4

1 回答 1

1

用这个 :

f.select(:bus_id, Bus.find(:all, :conditions => {:is_enabled => 1}).map{|b| [ b.name, b.id ] }, {:include_blank => true })

代替:

   <% Bus.find(:all, :conditions => {:is_enabled => 1}).each do |bus| %>
   <%= select(bus.name) %>
   <% end %>

希望这会有所帮助。

于 2013-07-15T15:09:46.517 回答