Qual è l'opposto di url_for in Rails? Una funzione che prende un percorso e genera il percorso interpretato?

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

Domanda

Il cervello di un po 'di fritto .... Come faccio ad avere un hash del: controller e:? L'azione da un RELATIVE_PATH

Questo è fondamentalmente l'opposto di url_for. nell'esempio che segue, "una_qualche_funzione" è il nome della funzione mistero che sto cercando ... Lo so che è facile, basta non ricordo o sembrano essere in grado di trovare nella documentazione.

In questo modo:

some_function('/posts/1/edit')
=> {:controller => 'posts', :action => 'edit', :id => '1'}
È stato utile?

Soluzione

Rspec ha un metodo 'params_for', che utilizza metodi di instradamento di azione di controllo per analizzare i percorsi con i metodi in percorsi.

Il loro è un po 'più robusto di questo, ma si riduce a:

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

Altri suggerimenti

Con Rails 3 il modo migliore è quello di utilizzare

Rails.application.routes.recognize_path('/posts/1/edit')
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top