2010-11-24 21 views
28

me gustaría pasar un parámetro adicional para una ruta miembro de un recursoRutas Rails3 - paso de parámetros a una ruta miembro de

algo como:

resources :events do 
    member do 
    get 'register/:participant_type_id' 
    end 
end 

sólo podía lograrlo usando un partido estática declaración

Buscando en Internet vi que esto podría ser posible en Rails 3.0.2. Estoy usando 3.0.1 y certanlly no.

¿Estoy haciendo algo mal? o es realmente imposible?

gracias

+0

Esto se supone que es posible con 3.0.1, estás recibiendo un error? – edgerunner

+0

sí, me sale 'missing: action' – Diogo

+0

encontrado esto, no estoy seguro si está relacionado ... https://rails.lighthouseapp.com/projects/8994/tickets/5431-rails-3-rc-routing-resource- member-routes-lack-defaults – Diogo

Respuesta

40

Prueba esto:

resources :events do 
    member do 
    get 'register/:participant_type_id', :action => 'register' 
    end 
end 
+1

¡Genial, funcionó! Está documentado en cualquier lugar, no pude encontrar una referencia ... – Diogo

+11

No lo sé, solo proporciono lo que mi aplicación me dice que falta. Dijo "acción perdida", les di acción. –

17

sólo para completar la respuesta con mis pequeños hallazgos. También me confundió por bastante tiempo.

En Rails3, la ruta del miembro con parámetros no tendrá el auxiliar xx_yy_path generado automáticamente. Debe agregarlo proporcionando la parte :as =>, omitiendo el nombre resources.

En cuanto al ejemplo proporcionado, para obtener register_event_path y register_event_url, es necesario definirla como el siguiente:

resources :events do 
    member do 
    get 'register/:participant_type_id', :action => 'register', :as => 'register' 
    end 
end 
+0

cómo obtener una identificación de evento dentro de la acción de registro? – lessless

+0

@lessless dentro de 'resources: events' y' member' Creo que un parámetro 'id' que representa' event id' está automáticamente en la ruta generada. – larryzhao

Cuestiones relacionadas