Как получить текущий маршрут в рельсах

Я создаю примерное приложение для рельсов, в котором у меня две модели 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