【问题标题】:Rails 3 Select Menu Default Value when editing an EntryRails 3在编辑条目时选择菜单默认值
【发布时间】:2011-07-31 09:42:54
【问题描述】:

我在 Rails 应用程序中使用以下代码作为选择菜单

控制器:

@discount_options = {'% Off' => 'percent', '$ Off' => 'dollar', '$ For' => 'flat', 'Free with Purchase Of' => 'bonus', 'Buy One Get One Free' => 'bogo' }

查看(在 form_for 内)

<%= f.select :discount, options_for_select(@frugle_discount_options) %>

这在创建新记录时工作得很好。如果我回来编辑这条记录,它总是默认为第一个“% Off”

我发现很难在网上找到关于选择菜单的好的文档。有人可以帮我吗?

谢谢!

【问题讨论】:

  • 我不知道为什么它不起作用,因为在我看来你写的应该没问题。我要指出的是,除非您使用的是 Ruby 1.9.x,否则不能保证散列以任何特定顺序返回项目,因此您可能应该使用嵌套数组而不是散列作为选项。 [['% Off', 'percent'], ['$ Off', 'dollar'], ...]

标签: ruby-on-rails ruby-on-rails-3 forms select


【解决方案1】:

你可以传入第二个参数

options_for_select_method(@discount_options, 'bonus')

您可以使用 :discount 参数进行设置。

【讨论】:

    【解决方案2】:

    您应该使用 :selected 引用 f.object

        <%= f.select :discount, options_for_select(@frugle_discount_options), :selected => f.object.discount %>
    

    【讨论】:

    • :selected =&gt; f.object.discount 实际上不会作为options_for_select 中的最后一个参数进入内部吗?
    【解决方案3】:

    这是我遇到的一篇很棒的博文,讨论了在 rails 中使用各种选择助手。值得一读。

    http://shiningthrough.co.uk/Select-helper-methods-in-Ruby-on-Rails

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-07
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 2015-04-10
      • 1970-01-01
      相关资源
      最近更新 更多