Rails 3中选择菜单默认值编辑条目

问题描述:

当我使用下面的代码在我的Rails应用程序一个选择菜单Rails 3中选择菜单默认值编辑条目

控制器:

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

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

我觉得很奇怪很难找到有关选择菜单的良好文档..有人可以帮我吗?

谢谢!

+0

我不知道为什么它不工作,因为它看起来像你对我写的东西应该好的。我会指出,除非你在Ruby 1.9.x中,否则散列不能保证以任何特定的顺序返回项目,所以你应该使用一个嵌套数组作为你的选项而不是散列。 '[''%off','percent'],['$ off','dollar'],...'] – 2011-04-07 06:09:44

您可以通过第二个参数

options_for_select_method(@discount_options, 'bonus') 

您可以通过设置:折扣参数。

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

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

你应该与f.object参考:选择

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

不会':selected => f.object.discount'作为最后'options_for_select'中的参数? – DnfD 2016-02-09 14:15:01