Hi Tobias.

Ich verstehe dein Problem nicht ganz. 
Du möchtest nach Author sortieren, aber trotzdem Bücher mit mehreren
Autoren nur einmal anzeigen!?
Bei welchem der Autoren soll es denn dann in der Sortierung angezeigt
werden!? Du musst schon einen eindeutigen Autoren definiert haben, damit
das funktioniert.
Du musst mit mehreren Autoren eh eine habtm-Relation haben, da Autoren
im Normalfall mehr als ein Buch schreiben. In dem Falle würde ich keine
Join-Tabelle verwenden sondern eine JoinClass mit boolean main_author.
So ganz logisch klingt deine Anfrage nicht.

Generelll könntest du dir einfach überlegen nach deinen NamedScopes
einfach ein .uniq anzuhängen, damit kannst du doppelte Einträge
ausfiltern.

Gruesse, Rainer

On Mon, Mar 08, 2010 at 08:39:03PM +0100, Tobias Weiß wrote:
> Hallo zusammen,
> 
> ich stehe gerade etwas auf dem Schlauch, vielleicht kann mir jemand
> weiterhelfen:
> 
> Ich habe zwei Models:
> 
> Author.rb
> 
> Book.rb
>   has_many :authors
> 
> In book.rb habe ich einen named_scope, um die gefundenen Bücher nach
> einem bestimmten Parameter zu sortieren. (Später wird der noch mit
> anderen Scopes zu einer Filterkette verknüpft)
> 
> named_scope :sorted, lambda {|sort,order| {
>     :joins => :authors,
>     :order => ["LOWER(" + sort  + ") " + order.upcase]}
>  }
> 
> Mein Problem:
> Ich möchte eine Liste mit allen Büchern haben, aber jedes Buch soll
> nur einmal in der Liste erscheinen, egal wieviel Autoren es hat.
> Book.sorted liefert mir jedoch Duplikate, sobald ein Buch mehrere
> Autoren hat, was augenscheinlich am join liegt. Hat jemand ne Idee,
> wie man das verhindern kann?
> 
> Grüße, Tobi
> _______________________________________________
> rubyonrails-ug mailing list
> rubyonrails-ug@headflash.com
> http://mailman.headflash.com/listinfo/rubyonrails-ug
_______________________________________________
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an