我正在使用地理编码器gem,我需要为模型编写起始和结束地址,但是我不确定我是否可以使用此gem完成此操作,如果我可以正确执行此操作。如果使用gem无法做到这一点,是否有另一种资源可以让我在同一表单上对两个位置进行地理编码?这是我想要做的一个例子,但它只是通过第二个地址进行地理编码。
geocoded_by :start_address
before_validation :geocode
geocoded_by :delivery_address, :latitude => :end_latitude, :longitude => :end_longitude
before_validation :geocode
答案 0 :(得分:1)
如果查看源代码,看起来好像有一个选项哈希值会被覆盖active_record.rb和base.rb。
我认为有两种选择:将地址移动到包含的(加入的)模型(如Address
或其他东西),或者fork地址解析器按键有多个选项。第一个更容易,并解决了问题。第二个更酷(可能会把自己当成一个卡塔)。
答案 1 :(得分:1)
所以发生的事情只是简单的红宝石......如果你这样做:
class Question
def ask
"what would you like?"
end
def ask
"oh hai"
end
end
Question.new.ask
=> "oh hai"
最后一个方法定义胜出...所以当你声明两个geocoded_by
方法时,第二个是重要的方法。
我认为您将不得不使用gem
进行手动地理编码before_validation :custom_geocoding
def custom_geocoding
start_result = Geocoder.search(start_address)
end_result = Geocoder.search(delivery_address)
# manually assign lat/lng for each result
end