Hallo Matthias,

vielen Dank. Dein Wink in die Richtung war meine Lösung.
Über deine Lösung bin ich dann zu einem JOIN gekommen.

Article.find(:all, :conditions => ['articles.name = ? and invoices.attr1 = ?', params[:articlename], params [:invoice_date]], :join => " invoices ON articles.id = invoices.article_id")

Ich hatte mir eigentlich was anderes vorgestellt das weniger mit SQL zu machen aber vorerst ist das eine annehmbare Lösung. Aber das schreit mir ganz nach einem neuen(?) Plug-in. Wenn ich ein wenig Luft hab werd ich mir das mal genauer anschauen.

Grüße und danke
Önder


Am 27.10.2007 um 18:32 schrieb Mathias Meyer:

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

_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an