Что противоположно url_for в Rails?Функция, которая принимает путь и генерирует интерпретируемый маршрут?

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

Вопрос

Мозг немного поджарился .... Как мне получить хэш :controller и :action из relative_path?

Это в основном противоположно url_for .в приведенном ниже примере "some_function" - это имя загадочной функции, которое я ищу...Я знаю, что это легко, просто не могу вспомнить или, кажется, могу найти его в документах.

Вот так:

some_function('/posts/1/edit')
=> {:controller => 'posts', :action => 'edit', :id => '1'}
Это было полезно?

Решение

У Rspec есть метод 'params_for', который использует методы маршрутизации Action Controller для преобразования путей с помощью методов в маршруты.

Их технология немного более надежна, чем эта, но она сводится к:

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

Другие советы

С Rails 3 лучший способ - использовать

Rails.application.routes.recognize_path('/posts/1/edit')
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top