我正在使用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
答案 0 :(得分:4)
在执行视图时,插件已经定义了COUNTRIES
常量。在初始化程序中定义COUNTRIES
。 (见:config/initializers
)
编辑:
把它放在初始化器中,如config/initializers/countries.rb
:
ActionView::Helpers::FormOptionsHelper::COUNTRIES = ["X", "Y", "Z"]