Hallo, ich habe eine klasse Patient. Ich möchte Daten der Patienten aus der Datenbank holen. Ich stelle mir das so vor: Patient(mueller) => ausgewählte Daten (nicht alle) wie Name, Geburtsdatum und Adresse werden geholt. Wie kann ich diese Situation in Ruby realisieren? lg
on 2009-02-23 12:31
on 2009-02-23 12:46
patient = Patient.find_by_name('mueller')
wenn du das Feld "name" in deiner Tabelle "patients" hast.
Danach kannst du durch entsprechende Methodenaufrufe auf die einzelnen
Daten zugreifen:
patient.name # =>
Müllerpatient.geburtsdatum # => 23.02.2009
usw.
schöne grüße,benjamin
Am 23.02.2009 um 12:31 schrieb Hello Guy:
on 2009-02-23 13:01
On Mon, 23 Feb 2009 12:31:15 +0100 Hello Guy <lists@ruby-forum.com> wrote: > Hallo, hi, > ich habe eine klasse Patient. Ich möchte Daten der Patienten aus der > Datenbank > holen. > Ich stelle mir das so vor: Patient(mueller) => ausgewählte Daten (nicht > alle) wie Name, Geburtsdatum und Adresse werden geholt. > > Wie kann ich diese Situation in Ruby realisieren? also mit ActiveRecord etwa so: class Patient < ActiveRecord::Base composed_of :address_data, :mapping => [ %w(lastname lastname), %w(geburtsdatum geburtsdatum), %w(strasse strasse), %w(stadt stadt)] end data = Person.find(:first).address_data data.strasse das schafft dir ein 'subset' an daten der Patient-class natuerlich muessen diese attribute auch in der Patient-class vorhanden sein. sieh dir das an: http://api.rubyonrails.org/classes/ActiveRecord/Ag... gruesse rene
on 2009-02-23 20:01
danke für eure antworten, aber ich hab mich falsch ausgedrückt. also die klasse patient befindet sich nicht in der anwendung selber sondern ist ein separates programm patient.rb welches zugriff auf die datenbank haben soll. kann ich aus diesem programm patient.rb genauso auf die bestehende datenbank zugreifen? lg
on 2009-02-23 20:11
2009/2/23 Hello Guy <lists@ruby-forum.com>: > danke für eure antworten, aber ich hab mich falsch ausgedrückt. > > also die klasse patient befindet sich nicht in der anwendung selber > sondern > ist ein separates programm patient.rb welches zugriff auf die datenbank > haben > soll. > > kann ich aus diesem programm patient.rb genauso auf die bestehende > datenbank > zugreifen? 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 -- Thomas Preymesser thopre@gmail.com http://thopre.googlepages.com/ http://thopre.wordpress.com/
on 2009-02-24 10:22
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. Klasse patient ist ja schon definiert in Rails in Model patient.rb. 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????? lg
on 2009-02-25 17:14
Hallo ich habe eine ganz andere frage:
ich kann die verbindung zur datenbank erstellen
[code]dbh = Mysql.real_connect("localhost", "arzu", "railswba",
"eventserver_development")[/code]
aber ich möchte nicht wie hier nach den zeilen fragen und die anzahl
ausgeben lassen,
[code] # Erste Abfrage
abfrage1 = dbh.query("SELECT name FROM animal WHERE name = 'tuna'")
puts "Number of rows selected: #{dbh.affected_rows}"
[/code]
sondern ich möchte den inhalt ausgeben lassen, mit welchem befehl kann
ich dies bewerkstellen? gibt es eine seite mit all den befehlen dazu?
[code]
abfrage1 = dbh.query("SELECT * FROM animal WHERE name = 'tuna'")
puts "Number of rows selected: #{dbh.????}" ##ausgabe von category
[code]
lg mykavun
on 2009-02-25 17:41
2009/2/24 Hello Guy <lists@ruby-forum.com>: >>  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 thopre@gmail.com http://thopre.googlepages.com/ http://thopre.wordpress.com/
on 2009-02-25 23:32
ich habe eine anfrage gestellt:
a = Patient.find_by_sql("SELECT ev.name, co.type FROM events AS ev JOIN
competitions AS co ON ev.id = co.event_id")
a.each do |row|
puts "#{row[0]}\n"
end
als ausgabe bekomme ich 4 leere zeilen (es treffen 4 sätze zu).
mache ich die ausgabe vielleicht falsch, oder wieso wird mir das
ergebnis nicht angezeigt?
habe ich vielleicht etwas vergessen zu definieren?
lg
on 2009-02-25 23:33
> > -Thomas > > -- > Thomas Preymesser > thopre@gmail.com > http://thopre.googlepages.com/ > http://thopre.wordpress.com/ danke dir für deine hilfsbereitschaft
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.