Question

J'ai des problèmes avec la configuration de l'itinéraire correct dans mon fichier de routes. J'ai un contrôleur pour les événements. Dans le contrôleur des événements, j'ai une action appelée "People" qui ressemble un peu à ceci:

def people
    @people = Event.find_by_sql(["sql that joins three tables to get the data I need;", params[:id]])
end

Dans mes itinéraires, j'ai:

resources :events do
    collection do
      get :somethingelse
      get :people
    end
end

Si je code à hard mes params [: id] avant mon "find_by_sql", cela fonctionne très bien quand je visite "... / événements / personnes" cependant, si j'essaie de faire quelque chose comme "... / événements / 5 / personnes" J'obtiens l'erreur "No Route Matchs [Get] / Events / 5 / People ".

Je suis sûr que je manque quelque chose de simple dans mon fichier de routes. Quelqu'un peut-il me fournir la pièce qui me manque?

Était-ce utile?

La solution

Oui ce n'est pas sur la collection, c'est sur membre

collection do
  get :somethingelse
end
member do
  get :people
end

Autres conseils

Vous pouvez essayer cette approche:

id = 1
User.find_by_sql(['select * from users where id = ?', id])`
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top