2011-12-19 145 views
0

我很抱歉补救问题的冲击,但我一直在盯着这个一个多小时,它似乎与我的代码中的其他示例相匹配。我的下拉框没有按照我的预期填充。为什么我的下拉框没有填充?

这里是我的看法的全部:

<%= form_for :distro, :url => update_multiple_admin_distributions_workflows_path, :html => { :method => :put } do |f| %> 
    <ul> 
     <% for distribution in @distros %> 
      <li> 
      <%= hidden_field_tag "distribution_ids[]", distribution.id %> 
      <%=h distribution.type %> 
      </li> 
     <% end %> 
    </ul> 
    <p> 
    <%= f.label :status %><br /> 
    <%= f.select :status, options_for_select(Distribution.select(:status).group(:status).order(:status).map { |d| [d.status, d.status] }), :include_blank => true %> 
    </p> 
    <p><%= f.submit "Submit" %></p> 
<% end %> 

在轨控制台我得到这个:

>> Distribution.select(:status).group(:status).order(:status).map {|d| [d.status, d.status]} 
[["delivered", "delivered"], ["follow up", "follow up"]] 
    Distribution Load (0.5ms) SELECT status FROM "distributions" GROUP BY status ORDER BY status 

这似乎是我要找的名单。

更新:

我修改了选择的辅助线,并添加:distro,并开始收到此错误:

未定义的方法`合并”为 “\ n”:的ActiveSupport :: SafeBuffer

一些快速谷歌搜索建议我删除f.select中的f.部分。但是,这导致下拉框的宽度缩小并保持空白。

+0

不知道这仅仅是当你将这些代码到一个#1错字,但看起来你在这一行缺少空间:'<%= H distribution.type%>'(前的字中,h ')。 – Batkins 2011-12-19 17:09:01

+0

感谢您的追捕,但它似乎没有任何区别。 – Ramy 2011-12-19 17:19:47

+0

看起来您不需要'options_for_select',只需输入'Distribution.select(:status).group(:status).order(:status).map {| d | [d.status,d.status]}'作为参数,而不调用'options_for_select'方法。 http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select – Batkins 2011-12-19 17:25:31

回答

3

摆脱options_for_select(一部分(最后括号)的。

Distribution.select(:status).group(:status).order(:status).map { |d| [d.status, d.status] } 

应该提供您所需要的一切。

编辑(再评论)

:distro是在form_forf.select添加它自动地。

<%= f.select :status, Distribution.select(:status).group(:status).order(:status).map { |d| [d.status, d.status] }, :include_blank => "-- Select One --" %> 
+0

这给了我:'符号作为阵列index' – Ramy 2011-12-19 17:31:59

+0

'<(%)= f.select:发行版,:状态, Distribution.select(:status).group(:status).order(:status).map {| d | [d.status,d.status]},:include_blank =>“ - 选择一个 - ”%>' – Ramy 2011-12-19 17:33:12

+0

感谢您的帮助! – Ramy 2011-12-19 21:19:51