gpt4 book ai didi

sinatra - 如何使用符号访问Sinatra参数?

转载 作者:行者123 更新时间:2023-12-04 05:20:31 24 4
gpt4 key购买 nike

在Sinatra中,我使用参数来获取通过URL查询字符串传递的键/值。我注意到我可以使用字符串或符号作为键来获取值。因此,如果URL为:

http://localhost:4567/x?a=1&b=2

然后:
params[:a] # => "1"
params["a"] # => "1"
params.to_s # => '{"name"=>"x", "a"=>"1", "b"=>"2"}'
params.class # => Hash

我可以看出params是哈希。但这似乎不是哈希的常见行为。
h = {"a" => "1", "b" => "2"}
h["a"] # => "1"
h[:a] # => nil

有人可以解释一下通过Sinatra如何实现吗?

最佳答案

阅读source总是一个好主意。具体来说,是 indifferent_params method

# Enable string or symbol key access to the nested params hash.
def indifferent_params(params)
params = indifferent_hash.merge(params)
params.each do |key, value|
next unless value.is_a?(Hash)
params[key] = indifferent_params(value)
end
end

正如注释所指出的,正是这种方法(在同一文件的 line 704上调用)允许对 params哈希值进行字符串和符号访问。

关于sinatra - 如何使用符号访问Sinatra参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com