如何在Ruby中转义符号(不是字符串)

时间:2019-05-03 05:46:04

标签: ruby struct escaping

我正在使用Ruby和Mechanize创建一个Web搜寻器。我正在抓取的网站发送带有方括号的此类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 :(得分:0)

使@ndenkov已经说过的话更明确:

如果您有哈希值

{ foo: 4711 }

这只是语法糖

{ :foo => 4711 }

这意味着键在语法上必须是一个简单的符号,基本上遵循与标识符相同的语法。