Ruby on rails 铁路-按大陆、国家和城市划分的地理代码

Ruby on rails 铁路-按大陆、国家和城市划分的地理代码,ruby-on-rails,rails-geocoder,Ruby On Rails,Rails Geocoder,我正试图整理一份世界上最好的城市名录 我有: ContinentsController < ApplicationController def index end def show end end CountriesController < ApplicationController def index end def show end

我正试图整理一份世界上最好的城市名录

我有:

    ContinentsController < ApplicationController
      def index 
      end 

      def show 
      end 
    end

    CountriesController < ApplicationController
      def index 
      end 

      def show 
      end 
    end

    CitiesController < ApplicationController
      def index 
      end 

      def show 
      end
    end
这在圣彼得堡不起作用,因为它只是对城市名称进行地理编码,而不是国家名称


提前多谢

您可以这样做:

class City < ApplicationRecord
 geocoded_by :address
 after_validation :geocode, if: :city_name_changed?

 def address
   "#{city_name}, #{country_name}"
 end
end

地理编码不需要是一列,它可以是一个实例方法

class City < ApplicationRecord

  geocoded_by :address

  def address
    [city_name, country_name].compact.join(', ')
  end

end

你打算对美国加利福尼亚州圣何塞做些什么;美国亚利桑那州圣何塞;美国佛罗里达州圣何塞;美国伊利诺伊州圣何塞;美国新墨西哥州圣何塞;美国德克萨斯州圣何塞;还有美国的圣何塞?例如,它们都有相同的城市名称、国家和大陆。尽管可以说,这些城市都不是世界上最好的城市。此外,城市属于:大陆似乎多余。哈哈,谢谢@jvillian,这是真的!还需要包括地区/省/州!
class City < ApplicationRecord
 geocoded_by :address
 after_validation :geocode, if: :city_name_changed?

 def address
   "#{city_name}, #{country_name}"
 end
end
def address
  [street, city, state, country].compact.join(', ')
end
class City < ApplicationRecord

  geocoded_by :address

  def address
    [city_name, country_name].compact.join(', ')
  end

end