2009-11-01 4 views
2

Je n'ai pas de bon titre pour cette question, mais mon problème est de définir une condition pour ma sous-table dans les rails J'ai un modèle nommé "utilisateurs" et un autre nommé "heures", heures est réglé sur "belongs_to: users" et le modèle users a "has_many: hours"Condition sur une sous-table dans les rails

Mais mon problème est quand j'essaie d'aller chercher les utilisateurs, mais seulement les heures ajoutées ce mois-ci. Je veux que cela se produise uniquement dans l'action Index.

Comment puis-je définir une condition pour ma sous-table?

Répondre

2
class SomeController 
    def index 
    Hours.all(:include => [:user], :conditions => "added_this_month is null") 
    end 
end 
+0

Presque ce que je voulais, mais est-il posible de renvoyer les utilisateurs qui ont pas d'heures aussi? (REJOIGNEZ-VOUS À GAUCHE?) – ThoKra

+0

Solution: http://stackoverflow.com/questions/1509692/rails-activerecord-joins-with-left-join-instead-of-inner-join – ThoKra

+0

Eh bien ... juste édité malgré tout. Depuis que j'ai remarqué que vous étiez plus intéressé par les heures par rapport aux utilisateurs. – rnicholson

0

has_many peut utiliser :conditions

has_many :hours, :conditions => ...

+0

Veuillez ajouter quelques détails à votre réponse. Bien qu'il réponde techniquement à la question, il ne fournit pas un bon exemple de la façon de mettre en œuvre la solution. – Jon

Questions connexes