2011-12-19 101 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

相關問題