2009-08-05 64 views
0

我不明白我該如何使用select助手來執行該代碼?rail_helper for select_tag?

<select name="cube_name"> 
    <% @cube_names.each do |cube| %> 
    <option value="<%= cube %>" <% if @cube_name == cube %> selected="selected"<% end %>><%= cube %></option> 
    <% end %> 
</select> 

我有一個列表(@cube_names),並希望有一個HTML選擇框寬度列表和默認值(PARAM @cube_name)的所有值應選擇。

謝謝。

回答

4

select_tag幫助程序不會自動設置您傳遞的項目上的selected屬性。它只是建立標籤。使用類似:

<%= select_tag("id_of_my_tag", @cube_names.map { |cn| "<option#{cn == cube ? " selected='selected'" : ""}>#{cn}</option>" }.join("")) %> 

第一個參數是選擇標籤的ID,第二個是一個選項列表(這裏由立方體名映射到字符串,然後加入陣列成一個字符串建)。

你可以選擇使用的options_for_select構建字符串:

<%= select_tag("id_of_my_tag", options_for_select(@cube_names, cube)) %>