2011-08-09 4 views
0

Je fais un tri basé sur un champ qui fait référence à une autre table (et tri sur le champ 'nom' de cette autre table). Le problème est que lorsque mon premier ensemble d'objets a des entrées qui n'ont pas de référence à l'autre, cette entrée est exclue du tri. Donc, en bref, j'ai une colonne qui est une référence à une autre table (et un tri sur une colonne dans cette table), mais je veux aussi inclure des références nulles.RoR: Search Logic: Comment faire une jointure à gauche au lieu de la jointure interne gauche par défaut?

Répondre

1

Je ne suis pas 100% sûr que je comprends votre question, mais par exemple, lorsque vous écrivez un named_scope vous pouvez passer des options comme ceci:

named_scope descend_it_by_that_other_column, 
:select => "", 
:joins => "LEFT JOIN ...", 
:conditions => "..." 

un autre exemple:

def my_fancy_method_returning_things 
association_name.all :limit => 5, :joins => 'LEFT JOIN ... ON ... = ...', :order => ...' 
end 
+0

ah, je n'a pas pensé à remplacer la portée nommée. Je vais essayer dans un peu. Merci. – NullVoxPopuli

+1

Si vous utilisez searchlogic et avez quelque chose comme ceci dans vos paramètres: "search" => {"order" => "ascend_by_rating"} alors searchlogic utilisera ascend_by_rating scope nommé si défini. J'espère que ça aide :) – socjopata

Questions connexes