On 27.10.2007, at 17:12, Önder Kara wrote:

Jetzt möchte ich hier z.B. Nach dem Artikel Apfel (passend zu meinem neuen iMac ;-) ) suchen Die Suchabfrage soll mir eine Liste zeigen mit allen Rechnungen in dem ein oder mehrere Äpfel enthalten sind.

article = Article.find(:first, :conditions => ["name = ?", params [:articlename]])
article.invoices

würde mir rein theoretisch eine Liste geben.

Jetzt will ich aber das ganze eingrenzen und gebe als Suchbegriff noch den Kundennamen und Rechnungsdatum ein. Wie sollte hier meine Abfrage denn aussehen? Bietet
Activerecord hier schon was an?

Du kannst entweder direkt auf der Assoziation ein find absetzen:
article.invoices.find(:all, :conditions => ['...'])

oder einfach die Assoziation in das obige find joinen:

Article.find(:all, :select => "a.*", :conditions => ['name = ? and i.attr1 = ? and i.attr2 = ?', params[:articlename], params [:customer], params[:date_of_purchase]], :from => 'articles a, invoices i')

Das ist an sich keine Spezialitaet von ActiveRecord, sondern nur eine Abbildung des entsprechenden SQLs, und eine von mehreren Moeglichkeiten.

Cheers, Mathias
--
Rails-Schulung "Advancing with Rails" mit David Black
19.11.-22.11.2007, Berlin-Mitte
Details u. Anmeldung: 
www.railsschulung.de_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an