¿Qué es lo contrario de url_for en Rails? Una función que toma un camino y genera la ruta interpretado?
-
19-09-2019 - |
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'}
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