Как получить текущий маршрут в рельсах
Я создаю примерное приложение для рельсов, в котором у меня две модели User и Projects. Ассоциация между ними - это пользовательские проекты. Теперь вопрос в том, что я готов предоставить несколько выпадающих списков для пользовательских проектов сверху, и если кто-то нажмет на него один, то он возьмет это, чтобы показать страницу проекта. Но если пользователь находится на странице редактирования одного проекта и выбирает другой проект из раскрывающегося списка, я хочу, чтобы он дошел до страницы редактирования нового выбранного проекта, в том же случае, чтобы показать страницу любой идеи. Решение, которое я ищу, - например: - мы можем найти текущий контроллер, используя params [: controller], найти текущее действие, используя params [: action], как найти текущий маршрут.
Заранее спасибо
Если кто-то хочет посмотреть, что такое мой код: - вот ссылка для github: -
'https://github.com/peeyushsingla/session_test.git/ Здесь я использую простую ссылку, но на самом деле я расскажу о каком-то отдельном выпадающем списке, который будет отображаться, который будет работать для всех изменений, показов, новых действий
Ответы
Ответ 1
Чтобы получить URL-адреса:
# Current URL:
request.original_url
# Current relative URL:
request.request_uri
Кроме того, вы можете проверить с помощью метода current_page
, находитесь ли вы на определенном маршруте.
current_page?(my_path)
# => true / false
Для Rails 4 используйте:
# Current URL:
request.original_url
# Current relative URL:
request.fullpath
Ответ 2
Для Rails 4
Пример URL: http://localhost:3000/allreferred?&referred_name=maria
request.path -> "/allreferred"
request.base_url -> "http://localhost:3000"
request.fullpath -> "/allreferred?&referred_name=maria"
request.original_url -> "http://localhost:3000/allreferred?&referred_name=maria"
Ответ 3
Вы можете использовать url_for
def current_path(params={})
url_for(request.params.merge(params))
end
Пример URL http://localhost:3000/posts
current_path -> /posts
current_path(order: asc) -> /posts/?order=asc