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

Antwort per Email an