Ruby on rails Rails 4.2:从州名称查找国家

Ruby on rails Rails 4.2:从州名称查找国家,ruby-on-rails,state,country,ruby-on-rails-4.2,Ruby On Rails,State,Country,Ruby On Rails 4.2,我刚刚开始工作的任务,其中有国家名称的位置。作为面向全球受众的项目,我们需要找到使用国家名称的国家。在依赖项为gem的项目中,用于国家下拉列表,因此在填充州和国家名称时使用相同的下拉列表 目前,从州名称测试实现中查找国家名称的步骤如下: def self.get_country(state=nil) unless state == nil ISO3166::Country.all.each do |cc| c = ISO3166::Country.find_country

我刚刚开始工作的任务,其中有国家名称的位置。作为面向全球受众的项目,我们需要找到使用国家名称的国家。在依赖项为gem的项目中,用于国家下拉列表,因此在填充州和国家名称时使用相同的下拉列表

目前,从州名称测试实现中查找国家名称的步骤如下:

def self.get_country(state=nil)
  unless state == nil
    ISO3166::Country.all.each do |cc|
      c = ISO3166::Country.find_country_by_alpha2(cc[1])
      c.states.each do |s|
        return c if s[1]["name"].downcase == state.downcase
      end if c.present?
    end
  end
  nil
end
这是太多的迭代,请建议一个更好的做它或任何其他方式。稍后,我考虑将这些添加到数据库中,作为国家和州,以便进行简单快速的查询


如有任何建议,我将不胜感激。谢谢

我想我太晚了。您可以使用
gem地理编码器
。使用它,您可以通过
Geocoder.search(user\u state\u name)查找国家/地区。首先,country
。感谢@rAzOr,Geocoder似乎每次搜索都会从配置的位置服务发出http请求。这是好的,如果把作业放在后台获取和保存数据,以便实时使用。