2009-08-05 7 views
0

選択ヘルパーでこのコードを実行するにはどうすればいいですか?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)を持っており、リスト、およびデフォルト値(のparam @cube_name)のすべての値が選択されなければならないHTML選択ボックスの幅をしたいです。

ありがとうございました。

答えて

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)) %> 
関連する問題