【问题标题】:Best way to dropdown a list of country in rails 4在rails 4中下拉国家列表的最佳方法
【发布时间】:2014-10-17 07:08:23
【问题描述】:

我有一个表单,用户在其中输入一些信息,我想在这个表单中添加一个国家,我正在徘徊什么是最好的方法(种子数据,Csv,......)我不想使用宝石

【问题讨论】:

  • 我想说最好的方法是使用宝石。除此之外,最好的方法是查看 country_select gem 是如何做到的,然后复制它。
  • 如果我使用的是 gem,那么这个国家就可以被搜索到??我正在使用太阳黑子宝石进行搜索

标签: ruby-on-rails select ruby-on-rails-4


【解决方案1】:

由于这本质上是静态数据,我什至不会将其存储到数据库中。我会创建一个 PORO,它有一个返回二维数组(国家缩写的国家)的类方法。这只是获取数据的问题。

这是您可以使用的列表。

https://github.com/karmi/localized_country_select/blob/master/locale/en.rb

【讨论】:

  • 你说的PORO是什么意思??
  • 一个“普通的旧 Ruby 对象”。基本上,只是一个对象。
【解决方案2】:

我使用country_select gem。使用起来非常简单。只需提供模型和属性作为参数:

country_select("user", "country")

这是我的一种形式的示例:

<%= f.fields_for (:address) do |b2| %>
     <%= b2.input :street %>
     <%= b2.input :city, :label => "City/Suburb" %>
     <%= b2.input :state %>
     <%= b2.input :post_code %>
     <div class="control-group">
        <label class="control-label">Country</label>
        <div class="controls">
           <%= b2.country_select :country, ["Australia", "New Zealand"] %>
        </div>
     </div>
  <% end %>

【讨论】:

  • Doh,刚刚注意到 OP 不想使用 gem。
  • 如果我使用宝石,那么该国家/地区是否可以搜索?我正在使用太阳黑子宝石进行搜索
  • 是的,它只是在你的模型中正常存储国家。例如,在我的国家/地区列中的数据库中,它显示为“澳大利亚”。
  • 好的,谢谢,我试过了,我发现它很容易使用,但仍然有一个问题,为什么当我选择一个国家(例如法国)并提交表格并转到显示页面时,我得到的是 FR 而不是法国 我在显示页面中的代码如下所示
  • 看起来他们在 2.x 版本中改变了这一点。试试 Gemfile 中的 gem 'country_select', '1.2.0'。
猜你喜欢
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 2014-11-15
  • 1970-01-01
相关资源
最近更新 更多