2013-08-20 95 views
1

無下面選擇助手會根據所選部分唯一的工作:Rails的選擇助手不工作

<%= f.select(:project_name, @parent_projects.collect {|p| [ p.name, p.name ] }, {:include_blank => 'Select Project'}, {:selected => "#{Project.find_by_identifier(params[:parent_id]).name}"}) %> 

OR

<%= f.select(:project_name, @parent_projects.collect {|p| [ p.name, p.name ] }, {:include_blank => 'Select Project'}, :selected => "#{Project.find_by_identifier(params[:parent_id]).name}") %> 

我沒有得到任何錯誤消息,但該選擇框不預選名稱。

經過從here

+0

<%= value =「#{Project.find_by_identifier(params [:parent_id])。name}」%>正在按預期返回項目名稱。 – Supersonic

+0

即使像這樣手動嘗試:<%= f.select(:project_name,@ parent_projects.collect {| p | [p.name,p.name]},{:include_blank =>'選擇項目'},{:selected =>「project_name」})%>仍然不起作用。 – Supersonic

回答

1

的API看到官方文檔的select - 該方法具有更多的魔法,你需要;它更適用於構建特定模型/屬性的選擇列表。由於您正在手動構建零件,因此應該使用更直接的select_tag方法。

select_tag('project_name', 
    options_from_collection_for_select(@parent_projects, 
     'name', 'name', 
     Project.find_by_identifier(params[:parent_id]).name), 
    :include_blank => 'Select Project') 

options_from_collection_for_select使您的選項列表,並採取其中選擇的參數。