控制器
def edit
@folder = Folder.find(params[:id])
@parents = Folder.all.where(:user_id => current_user).map{|u| [ u.name, u.id ]}
end
查看
<%= form_for(:folder, :url => {:action => 'update', :id => @folder.id}) do |f| %>
<table summary="Folder form fields">
<tr>
<th>Name</th>
<td><%= f.text_field(:name) %></td>
</tr>
<tr>
<th>Parent folder:</th>
<td>
<%= f.select(:parent_id, options_for_select(@parents) )%></td>
</tr>
</table>...
如何使用文件夹的parent_id在select helper中设置默认值? 我已经尝试过options_for_select(@parents,DEFAULT VALUE HERE),还有:selected =&gt; VALUE在不同的地方,没有结果。请帮忙
答案 0 :(得分:1)
如果将文件夹对象传递给form_tag
,则Rails应自动计算出默认值。您也不需要使用options_for_select
,因为select
表单助手会获取一系列选项。
<%= form_for(@folder, :url => {:action => 'update', :id => @folder.id}) do |f| %>
<%= f.select(:parent_id, @parents) %>
<% end %>
另外,如果使用RESTful路由,则在form_tag
中指定URL是多余的。
答案 1 :(得分:0)
在form_for中,默认值是分配给构建表单的对象的值。这意味着如果您希望select默认为某个值,则需要将控制器中的parent_id
属性设置为该值。
@folder.parent_id = 23 # the default value