用于rails的Google地图:如何规范化两个地址字段

时间:2013-05-13 19:11:36

标签: ruby-on-rails ruby-on-rails-3 google-maps google-maps-api-3 gmaps4rails

我正在使用google maps for rails gem - https://github.com/apneadiving/Google-Maps-for-Rails。根据那里的模型定制指南 - https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Model-Customization我想规范我的地址字段。但显然我有两个地址(from and to)。我该怎么做?

我试过这个

  acts_as_gmappable :normalized_address => "from_address" && "to_address"

  def gmaps4rails_address
    from_address && to_address
  end

它完全不起作用。只有to_address被标准化。 from_address保留用户输入的内容(尽管它计算得很好。但我希望有标准化版本。)

任何帮助?

1 个答案:

答案 0 :(得分:1)

我认为问题在于模型而不是gmaps4rails。您应该将每个地址设为polymorphic object。然后将两次附加到父模型;一次作为from_address,一次作为to_address。然后可以自己对每个地址进行标准化。

以示例编辑....

示例:

class Address < ActiveRecord::Base
  belongs_to :mappable, :polymorphic => true
  acts_as_gmappable :normalized_address => "address_string"

  def gmaps4rails_address
     address_string
  end
end

class YourMainModel < ActiveRecord::Base
  has_one :from_address, :as => :mappable
  has_one :to_address, :as => :mappable
end