передача символа # в хэш params в рельсах - PullRequest
1 голос
/ 14 марта 2019

Я обрабатываю некоторую обработку хештега в приложении rails.

Скажите, что я запрограммировал конечную точку, которая получает через params хэш строку, содержащую некоторые хэштеги.Примерно так:

This string contains this #hashtag and this #one.

Я использую почтальон для проверки моих конечных точек.

Теперь, когда в почтальоне я выполняю что-то вроде этого:

{{url}}/add?content=content=This string contains this #hashtag and this #one

Я получаю в params строку "content"=>"This string contains this ".То есть с первого появления символа # оставшаяся строка обрезается.

Очень хорошо понимая, что мой вопрос несколько наивный, смею спросить, почему это так?Что я сделал не так?и как мне удалось передать строки, содержащие символ #?

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

Вы должны убедиться, что вы кодируете все, что отправляете в параметре.

URI.encode("This string contains this #hashtag and this #one")

#=> This%20string%20contains%20this%20%23hashtag%20and%20this%20%23one
1 голос
/ 14 марта 2019

Обновите ваш запрос почтальона, чтобы заменить # на %23

{{url}}/add?content=This string contains this %23hashtag and this %23one

В будущем, когда вы делаете что-то подобное, вы можете выбрать часть параметров (или целую вещь) и сразунажмите и выберите EncodeURIComponent, как объяснено здесь

...