Как избежать символа (не строки) в Ruby - PullRequest
0 голосов
/ 03 мая 2019

Я создаю веб-сканер с Ruby и Mechanize. Веб-сайт, который я сканирую, отправляет данные POST такого типа в квадратных скобках. Проблема в том, что Mechanize использует struct, и я не нашел способа избежать квадратных скобок в ключе struct:

   post_body = {
       data[User][username]: username,
       data[User][password]: password,
       data[selector]: 1
   } 

Я пытался поместить ключи в строки и использовать такой синтаксис:

post_body = Struct.new(#{data[User][username]}, #{data[User][password]}, #{data[selector]})
post_body.new(username, password, 1)

но я получаю ошибку:

identifier data[User][username] needs to be constant

1 Ответ

0 голосов
/ 03 мая 2019

Чтобы сделать то, что @ndenkov уже сказал, более явно:

Если у вас есть хэш

{ foo: 4711 }

это просто синтаксический сахар для

{ :foo => 4711 }

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

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