ruby-on-rails - 如何使用 :selected with grouped_collection_select

标签 ruby-on-rails ruby-on-rails-3 validation grouped-collection-select

是否可以通过 grouped_collection_select 函数以某种方式使用您在普通选择 View 助手上使用的 :selected 选项?我想设置在我的列表中预先选择的值。我试过传入 :selected 作为一个没有运气的选项!

这是我的测试的一些代码片段:

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 很好地与组选择一起玩,所以我不得不手动完成,但是当用户验证失败时,我不会选择这个值。当他们修复验证错误时,我想保留这个设置。

最佳答案

我刚刚遇到了同样的问题并使用 option_groups_from_collection_for_select helper 解决了它和 select帮助记录在:http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html .

第一步是创建分组选项。以您的示例为例,它应该如下所示:

<% 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) %>

您可以将其全部写在一行中,我只是将选项分解为一个单独的变量来说明两种不同的方法。

关于ruby-on-rails - 如何使用 :selected with grouped_collection_select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11817496/

相关文章:

php - 使用外部数据库验证 Android APP 中的用户凭据

javascript - 电子邮件验证提示不正确

validation - Angular 2 Final 中的最小/最大验证器

ruby-on-rails - 在 Rails 集成测试中验证 Controller 分配的变量

ruby-on-rails - 释放 Rails 中的连接

sql-server - FreeTDS 在 Mac 上连接到 SQL Server 时出现问题(来自服务器的意外 EOF)

ruby-on-rails-3 - 在引用 super 之前,单表继承子类未知

ruby-on-rails - 无法将信用卡添加到 Stripe 上的托管帐户

ruby-on-rails - 带有 Heroku 登台环境的 Rails 加密凭证(使用生产设置)

ruby-on-rails - 如何编写仅查看日期时间字段的时间部分的 activerecord 查询?