如何在`country_select`插件中限制国家/地区名称?

时间:2011-03-05 22:20:49

标签: ruby-on-rails ruby-on-rails-3 simple-form

我正在使用simple_form,在使用名为country的字段时自动使用country_select插件,如下所示:

<%= f.input :country %>

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

我看到country_select code defines this

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

所以,我虽然可以覆盖下面的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"] 
      ^

如何覆盖COUNTRIES常量?或者有更优雅的方式吗?

Ps。我在Rails 3.0.3中使用Ruby 1.8.7p330

1 个答案:

答案 0 :(得分:4)

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

编辑: 把它放在初始化器中,如config/initializers/countries.rb

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