Rails 5: получить текущий URL и отправить обратно в бэкэнд - PullRequest
1 голос
/ 31 января 2020

Итак, я понимаю, что для получения полного URL-адреса в браузере вам нужно javascript что-то вроде:

var url = window.location.href;

По умолчанию это будет URL-адрес конкурента, например:

http://localhost:3000/contacts/#reference
http://localhost:3000/contacts/item

Если я поместил вышеуказанный код javascript в мой файл application.js, как я собираюсь вызвать его на моей стороне сервера, как, например, в моем файле /helpers/application_helper.rb?

Также мне нужно положить мой javascript в функцию, чтобы получить к ней доступ?

Пожалуйста, помогите!

РЕДАКТИРОВАТЬ:

request.fullpath или request.orginal_url не будет работать со специальным якорным символом, таким как http://localhost:3000/contacts/#reference, поэтому я спрашиваю, как я могу передать js на серверную сторону.

Ответы [ 2 ]

4 голосов
/ 31 января 2020

Чтобы получить текущий URL в /helpers/application_helper.rb Вам необходимо написать код рельсов, например:

def get_current_url
  request.original_url
end

Если вам интересна более подробная информация, проверьте документацию original_url

Если вы хотите значение от js

В приложении. js

function get_url {
 var url = window.location.href;
}

В application_helper.rb

def get_full_url_helper
 javascript_tag(
     "get_url()\";"
 )
end
0 голосов
/ 31 января 2020

Запускаете ли вы полнофункциональное приложение rails, используя .erb для представлений? Нужна дополнительная информация .... потому что, как правило, в рельсах ваш сервер будет знать, по какому URL вы находитесь? вам нужно go через роутер, чтобы туда попасть. разве вы не пытались сделать вызов API для rails с клиентского сервера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...