Что противоположно url_for в Rails?Функция, которая принимает путь и генерирует интерпретируемый маршрут?
-
19-09-2019 - |
Вопрос
Мозг немного поджарился .... Как мне получить хэш :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')
Не связан с StackOverflow