2011-07-16 44 views
13

我一直在搜索近2個小時的計算器,現在經歷了類似的問題,但答案似乎並不奏效。如何在select_tag/options_from_collection_for_select中設置「selected」

我有以下代碼:

<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name") %> 

我想顯示爲選定的,而不是在默認情況下將第一標籤我以前選擇的選項。

在其他問題,他們建議添加以下(他們都沒有工作)。

<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", "1") %> 

或者:

<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", @models.first.id) %> 

PS。我使用Rails 3.1.RC4

+0

這是表單還是獨立選擇? – s84

+0

這是一個獨立的選擇 – imjp

回答

26

假設除了你@models其中包含完整列表,你也有@model其中包含當前的記錄,那麼你就可以做到以下幾點:

<%= 
    select_tag "name_dropdown", 
    options_from_collection_for_select(@models, "friendly_id", "name", @model.id) 
%> 

基本上,options_from_collection_for_select(...)的第四個參數應該包含您想要選擇的項目的ID。您的第二個代碼示例強制每次選擇的ID爲1,並且您發佈的第三個樣本始終使@models中的第一個項目被選中,而不管當前選擇的實際模型如何。

+2

謝謝你,我通過放置'@ model.friendly_id'而不是'@ model.id'來解決它: '<%= select_tag「name_dropdown」,options_from_collection_for_select(@models,「friendly_id」, 「name」,@ model.friendly_id)%>' – imjp

相關問題