使用方法:使用grouped_collection_select选择
是否有可能以某种方式使用:selected选项,您可以在带有grouped_collection_select函数的普通选择视图助手上使用? 我想设置在我的列表中预先选择的值。 我试过传递:选择没有运气的选项!
这是我测试的一些代码片段:
grouped_collection_select 'user[subscription_attributes]', :subscription_plan_id, Trade.order(:name).all, :subscription_plans, :name, :id, :display_name, { :include_blank => true, :selected => 5 } grouped_collection_select 'user[subscription_attributes]', :subscription_plan_id, Trade.order(:name).all, :subscription_plans, :name, :id, :display_name, :include_blank => true, :selected => 5
两个版本都不起作用。 没有选择设置。 我正在使用它为嵌套模型设置一个值。 我正在使用railscasts动态选择列表方法: http ://railscasts.com/episodes/88-dynamic-select-menus-revised
我无法使用formtastic与组选择很好地玩,所以我必须手动完成,但是当用户validation失败时我不会保留此值。 我想在修复validation错误时保留此设置。
我刚刚遇到了同样的问题并使用option_groups_from_collection_for_select helper
和以下文档中记录的select
帮助程序解决了它: http : option_groups_from_collection_for_select helper
。
第一步是创建分组选项。 举个例子,看起来应该是这样的:
<% options = option_groups_from_collection_for_select(Trade.order(:name).all, :subscription_plans, :name, :id, :display_name, 5) %>
然后我创建了选择对象,如:
<%= select('user[subscription_attributes]', :subscription_plan_id, options, include_blank: true) %>
你可以将它全部写在一行中,我只是将选项分成一个单独的变量来说明两种不同的方法。
也许为时已晚,但groups_collection_select的API文档指出:’将从实例对象的调用方法返回的值将被选中。
因此,您甚至不必指定:selected选项,因为Rails将根据您的属性的当前值自动选择。 如果subscription_plan_id的值为5,则表示将选择该值。
如果这应该是默认值,那么您可以在模型中使用after_initialize进行设置。
实际上你需要发送选项include_blank例如
<%= grouped_collection_select :id, model.all, options = {:include_blank => 'Selecione'}%>