我正在使用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
答案 0 :(得分:0)
使@ndenkov已经说过的话更明确:
如果您有哈希值
{ foo: 4711 }
这只是语法糖
{ :foo => 4711 }
这意味着键在语法上必须是一个简单的符号,基本上遵循与标识符相同的语法。