Ich bin nicht sicher, ob dies auf ServerFault oder hier gefragt werden sollte, da es sich um ein Serverproblem handelt, das spezifisch für Mechanize und Nokogiri in einer Rails 3.2.3 Anwendung ist.Mechanize Rake-Aufgaben funktionieren auf einigen Servern, aber nicht auf anderen?
Ich habe eine Rake-Aufgabe, die ein Breiten- und Längengrad von einer unserer Service-Provider-Websites kratzt.
Ich habe die Aufgabe in "Crontab -e" zusammen mit den anderen Aufgaben eingerichtet. Aus irgendeinem Grund auf zwei supposidly idential Server, einer der die Server nicht die Harke Aufgabe mit dem folgenden Fehler abzuschließen:
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <[email protected]>
Date: Tue, 10 Apr 2012 14:46:30 +0100 (BST)
rake aborted!
/var/www/railsapp/lib/tasks/peoplesafelocation.rake:29: undefined (?...) sequence: /new GLatLng\(\s*(?<lat>.+?)\s*,\s*(?<long>.+?)\s*\)/
Beide Server laufen Rails 3.2.3 Ruby 1.9.2.
Ich kann nicht verstehen, warum es mit 'undefined (? ...) Sequenz' auf einem Server fehlschlagen würde, aber nicht das andere.
Beide Server verwenden RVM und Ubuntu 10.04.
Die vollständige Rake Aufgabe ist wie folgt:
desc "Import Peoplesafe Location"
task :fetch_peoplesafelocation => :environment do
# Logs into provider.co.uk/live and retrieved latitude and longitude.
require 'rubygems'
require 'mechanize'
require 'logger'
require 'nokogiri'
# Create a new mechanize object
agent = Mechanize.new
# Load the Peoplesafe website
page = agent.get("http://provider.co.uk/live/")
# Select the first form
form = agent.page.forms.first
form.username = 'User'
form.password = 'Password'
# Submit the form
page = form.submit form.buttons.first
page = agent.get("http://provider.co.uk/live/?gps&cid=AAXA-PJZM6M")
html_doc = page.root
script = page.at('/html/head/script[not(@src)]')
parts = script.text.match(/new GLatLng\(\s*(?<lat>.+?)\s*,\s*(?<long>.+?)\s*\)/)
#puts parts[:lat], parts[:long]
Location.create(:latitude => parts[:lat], :longitude => parts[:long])
puts 'Location Updated'
Ende
Alle Zeiger würde geschätzt!
Jemand scheint dich falsch über die richtige Regex gelenkt zu haben. Vielleicht, wenn Sie den HTML-Code posten. – pguardiario