def block in rake task

前端 未结 3 568
清歌不尽
清歌不尽 2021-02-01 13:37

I got undefined local variable or method \'address_geo\' for main:Object with the following rake task. What\'s the problem with it?

include Geokit::         


        
3条回答
  •  鱼传尺愫
    2021-02-01 13:51

    You can use a Proc to get the same effect without having a global method declaration. e.g.,

    include Geokit::Geocoders
    
    namespace :geocode do
      desc "Geocode to get latitude, longitude and address"
      task :all => :environment do
    
        address_geo = Proc.new do
          arr = []
          arr << address if @spot.address
          arr << city if @spot.city
          arr << country if @spot.country
          arr.reject{|y|y==""}.join(", ")
        end
        @spot = Spot.find(:first)
        if @spot.latitude.blank? && !@spot.address.blank?
          puts address_geo.call
        end
      end
    end
    

提交回复
热议问题