2012-05-23 4 views
0

J'ai mis ensemble la requête suivante, qui fonctionne comme je pense à:Rails/actif enregistrement trouver avec JOIN, LIMIT et OFFSET

stuff = @thing.children.find(
    :all, 
    :joins => :other, 
    :conditions => {:others => {:another_id => some_id}}, 
    :limit => my_limit, 
    :offset => my_offset, 
) 

Cependant, les requêtes de la forme find(:all) sont déconseillés. J'ai essayé de changer ma requête au format suivant:

stuff = @thing.children.find(
    :joins => :other, 
    :conditions => {:others => {:another_id => some_id}}, 
    :limit => my_limit, 
    :offset => my_offset, 
).all 

mais cela génère une erreur de base de données. Quelle est la bonne façon d'écrire cette requête?

+0

Je pense que u devrait utiliser AREL, u peut easiely consruct même question –

Répondre

1

Court de réécriture à Arel, vous pouvez simplement changer le .Find à .Toutes, et retirez le: tout symbole comme ceci:

stuff = @thing.children.all(
    :joins => :other, 
    :conditions => {:others => {:another_id => some_id}}, 
    :limit => my_limit, 
    :offset => my_offset, 
) 
Questions connexes