Rails选择帮助程序设置默认值

调节器

def edit @folder = Folder.find(params[:id]) @parents = Folder.all.where(:user_id => current_user).map{|u| [ u.name, u.id ]} end 

视图

  {:action => 'update', :id => @folder.id}) do |f| %> 
Name
Parent folder:
...

如何使用文件夹的parent_id在select helper中设置默认值? 我已经尝试过options_for_select(@ parent,DEFAULT VALUE HERE),还有:在不同的地方选择=> VALUE,没有结果。 请帮忙

如果将文件夹对象传递给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是多余的。

在form_for中,默认值是分配给构建表单的对象的值。 这意味着如果您希望select默认为某个值,则需要将控制器中的parent_id属性设置为该值。

 @folder.parent_id = 23 # the default value