2011-03-05 72 views
2

我使用simple_form,使用字段中指定的国家的时候,这样它会自动使用country_select插件:如何限制country_select插件中的国家名称?

<%= f.input :country %> 

但我希望能够限制国家显示。

我看到country_select code defines this

COUNTRIES = ["Afghanistan" 
    ... 
"Yemen", "Zambia", "Zimbabwe"] unless const_defined?("COUNTRIES") 

所以,我虽然我可以覆盖的国家,如下面:

<% COUNTRIES = ["Canada","USA"] %> 
<p><%= f.input :country %></p> 

但我得到一个错误:

compile error 
/home/jack/src/beta/app/views/contacts/_address_fields.html.erb:6: dynamic constant assignment 
'); COUNTRIES = ["Canada","USA"] 
    ^

如何覆盖国家不断?还是有更好的方法来做到这一点?

Ps。我正在使用Ruby 1.8.7p330和Rails 3.0.3

+0

我想这是在Rails应用程序的开始加载。您是否尝试在初始化程序中设置COUNTRIES? – apneadiving 2011-03-05 22:31:33

+0

只是fyi,我一般使用https://github.com/jim/carmen – apneadiving 2011-03-05 22:32:47

回答

4

COUNTRIES常量已由插件在执行视图时定义。在初始化程序中定义COUNTRIES。 (参见:config/initializers

编辑:在初始化 将这个像config/initializers/countries.rb

ActionView::Helpers::FormOptionsHelper::COUNTRIES = ["X", "Y", "Z"] 
+0

我按照建议,但整个列表仍在显示! – Zabba 2011-03-05 22:43:16

+0

你重新启动了你的服务器吗? – apneadiving 2011-03-05 23:00:46

+0

看我的编辑,并注意apneadiving的提醒重新启动您的服务器。 – jdl 2011-03-05 23:06:18