¿Qué es lo contrario de url_for en Rails? Una función que toma un camino y genera la ruta interpretado?

StackOverflow https://stackoverflow.com/questions/2222522

Pregunta

El cerebro de un poco frito .... ¿Cómo consigo un hash del: controlador y:? La acción de un RELATIVE_PATH

Esto es básicamente lo opuesto a la url_for. En el siguiente ejemplo, "some_function" es el nombre de la función misterio que estoy buscando ... Sé que es fácil, simplemente no puede recordar o parecen ser capaces de encontrar en los documentos.

Al igual que:

some_function('/posts/1/edit')
=> {:controller => 'posts', :action => 'edit', :id => '1'}
¿Fue útil?

Solución

Rspec tiene un método 'params_for', que utiliza métodos de enrutamiento acción del controlador de analizar trayectorias con métodos en rutas.

El suyo es un poco más robusto que esto, pero se reduce a:

def params_for(path, method)
  params = ActionController::Routing::Routes.recognize_path(path, :method => method)
end

Otros consejos

Con Rails 3 la mejor manera es utilizar

Rails.application.routes.recognize_path('/posts/1/edit')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top