Associations et conditions

Par fital, il y a 10 ans


Bonjour,

J'essaie actuellement d'apprendre ruby + ruby on rails et je bloque sur un problème sûrement très simple pour les habitués ^^, j'essaie de faire une condition sur une requête.

#articles_controller def category @articles = Article.find( :all, :conditions => {:category=>{ :slug => 'non-classe'}} ) render 'index' end

(pour le système de slug j'utilise https://github.com/norman/friendly_id )

Du coup c'est ma request "Article.find" qui pose soucis, je ne sais pas comment faire pour faire un where sur la relation Category.slug.

ça doit être vraimnt tout bête mais je bloque là dans mon apprentissage ^^

Merci d'avance.

4 réponses

faouzzz, il y a 9 ans

Salut,

Si tu utilises la version de rails 4 et plus tu peux essayer:

@articles = Article.include(:category).where(category.slug: 'non-classe')
Kareylo, il y a 9 ans

C'est normal qui tu as ":category=>" dans ta requête ?

Tu ne devrais pas plutôt avoir ceci :

#articles_controller def category @articles = Article.find( :all, :conditions => {:category => { :slug => 'non-classe'}} ) render 'index' end
mitnick93150, il y a 9 ans

et pourquoi tu ne fait pas ça :

def category @articles = Article.categories.where(slug: 'non-classe') render 'index' end
shinix, il y a 9 ans

En 9 mois je pense qu'il a résolu son problème xD