ruby-on-rails - 如何自定义选项以获取完整的国家名称作为 country_select gem 的值?

标签 ruby-on-rails ruby

我用过 country_select gem,它工作正常,现在我想将选项值设置为与下拉列表中显示的国家名称相同的完整国家名称,而不是国家代码。

例如:我会像下面这样:

<select id="order_ship_country" name="order[ship_country]">
    <option value="AU">Australia</option>
    <option value="CA">Canada</option>
    <option value="GB">United Kingdom</option>
    <option value="US">United States</option>
</select>

但我期待这样:

<select id="order_ship_country" name="order[ship_country]">
    <option value="Australia">Australia</option>
    <option value="Canada">Canada</option>
    <option value="United Kingdom">United Kingdom</option>
    <option value="United States">United States</option>
</select>

提前致谢

最佳答案

1/做一个初始化

# config/initializers/country_select.rb

CountrySelect::FORMATS[:with_full_country_name] = lambda do |country|
  [
    country.name,
    country.alpha2,
    {
      'value' => country.name,
    }
  ]
end

2/在你的 View 中用format调用它

<%= country_select("user", "country", format: :with_full_country_name) %>

如文档中所述:https://github.com/stefanpenner/country_select#using-a-custom-formatter

关于ruby-on-rails - 如何自定义选项以获取完整的国家名称作为 country_select gem 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47413970/

相关文章:

ruby-on-rails - Ruby on Rails 中用于客户端服务器的正则表达式

ruby-on-rails - FactoryGirl/Bot 图像定义

ruby-on-rails - 安装 Rails : "File not found: lib"

ruby-on-rails - 为什么 Ruby Array 类有 to_a 和 to_ary 方法?

ruby - 在 Ruby 中从一个数组中减去另一个数组

ruby-on-rails - 在 Ruby 中对嵌套/邻接模型进行排序的算法

ruby-on-rails - rake - rake 构建不适用于 tripit/slate 文档

ruby-on-rails - 将 "rails runner"用于 cron 作业是非常占用 CPU 的 - 替代方案?

ruby - 获取此 URL 特定部分的 ruby​​ 正则表达式是什么?

ruby-on-rails - wicked_pdf 在 unicode pdf 转换 (ruby) 上显示未知字符