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