2009/2/24 Hello Guy <[email protected]>: > Thomas Preymesser wrote: >> Ja, klar. Hast du das Buch 'Ruby Cookbook'? Dort ist ein Beispiel, wie >> man ActiveRecord auch ohne Rails verwenden kann. >> >> Prinzipiell: >> >> Klasse Patient definieren >> >> zu Datenbank verbinden >> Schleife �ber alle einzulesenden Daten >> Alle Attribute in Patient belegen >> save aufrufen >> bei Datenbank abmelden >> >> >> -Thomas > also das buch habe ich leider nicht.
ist aber sehr empfehlenswert, was alle möglichen Themengebiete rund um Ruby anbelangt. > Klasse patient ist ja schon definiert in Rails in Model patient.rb. wenn es über ein separates Programm laufen soll, mußt du auch dort Patient noch definieren. > > muss ich die verbindung zur datenbank auch noch mal in diesem > separatesprogramm.rb herstellen, obwohl schon eine verbindung zur > datenbank in database.yml vorhanden ist? eigentlich ja oder? oder darf > ich die rails api mit dem separaten program nicht getrennt sehen????? es läßt sich sicher auch in die Rails-Applikation integrieren, aber wenn mir von einem separaten Programm ausgehen, mußt du dort auch die Verbindung zu Datenbank selbst handeln (ist aber auch nicht weiter schlimm). Hier ist mal ein Skript von mir, das in etwa das gleiche macht, du müßtest es halt darauf anpassen, daß der Input nicht von einer Webseite sondern aus einer Datei kommt. require 'rss/2.0' require 'open-uri' require 'date' require 'rubygems' require 'active_record' def activerecord_connect ActiveRecord::Base.establish_connection(:adapter => "mysql", :host => "localhost", :username => "root", :password => nil, :database => "jobs") end activerecord_connect class Posts < ActiveRecord::Base end url='http://berlin.kijiji.de/f-SearchAdRss?CatId=65' feed = RSS::Parser.parse(open(url).read, false) # puts "=== Channels: #{feed.channel.title} ===" feed.items.each do |item| found = Posts.find_by_pubdate(item.pubDate.to_s) unless found puts item.title puts item.pubDate puts item.description # TODO: uninteressante immer wieder gepostete # Angebote generell als uninteressant markieren if item.title =~ / Franzosen / or item.title =~ /MA aus UK\/USA\/Irland / interesting = false else interesting = true end # Mon, 19 Jan 2009 13:43:55 +0100 # puts Date.strptime(item.pubDate,'') s = item.pubDate.to_s d = ParseDate.parsedate(s) dd = DateTime.new(d[0],d[1],d[2],d[3],d[4],d[5]) pubtime = dd post = Posts.create(:pubdate => item.pubDate.to_s, :pubtime => pubtime, :title => item.title, :link => item.link, :description => item.description, :interesting => interesting) puts "gespeichert" end end -Thomas -- Thomas Preymesser [email protected] http://thopre.googlepages.com/ http://thopre.wordpress.com/ _______________________________________________ rubyonrails-ug mailing list [email protected] http://mailman.headflash.com/listinfo/rubyonrails-ug
