Pregunta

Tengo problemas para configurar la ruta correcta en mi archivo de rutas. Tengo un controlador para eventos. Dentro del controlador de eventos tengo una acción llamada "People" que se parece un poco a esto:

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

En mis rutas tengo:

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

Si código duro mis parámetros [: id] antes de mi "find_by_sql" funciona bien cuando visito ".../eventos/personas", sin embargo, si trato de hacer algo como ".../eventos/5/personas" Recibo el error "No coincidentes de ruta [obtenga]/eventos/5/personas ".

Estoy seguro de que me estoy perdiendo algo simple en mi archivo de rutas. ¿Alguien puede proporcionarme la parte que me estoy perdiendo?

¿Fue útil?

Solución

Sí, no está en la colección, está en el miembro

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

Otros consejos

Puedes probar este enfoque:

id = 1
User.find_by_sql(['select * from users where id = ?', id])`
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top