Ruby on rails 访问ActionController参数哈希值
我在从4.2升级到5.1的应用程序中遇到了参数问题。我已经允许使用我的参数,但正如文档所述,我正在为我的哈希数组返回一个对象,但似乎无法访问它的值。我怎样才能得到这个对象的值呢Ruby on rails 访问ActionController参数哈希值,ruby-on-rails,strong-parameters,actioncontroller,Ruby On Rails,Strong Parameters,Actioncontroller,我在从4.2升级到5.1的应用程序中遇到了参数问题。我已经允许使用我的参数,但正如文档所述,我正在为我的哈希数组返回一个对象,但似乎无法访问它的值。我怎样才能得到这个对象的值呢 {"_method"=>"delete", "authenticity_token"=>"Z6ZqriiuXu6ODDqhGgocGiaN12rjKD6pUB6n/2v+CABZDAjwLzwczsMM3nM8f0PI0nww43o5mlC35HK+9PVa8w==", "domain_n
{"_method"=>"delete", "authenticity_token"=>"Z6ZqriiuXu6ODDqhGgocGiaN12rjKD6pUB6n/2v+CABZDAjwLzwczsMM3nM8f0PI0nww43o5mlC35HK+9PVa8w==",
"domain_name"=>"test.testmodule2.com.",
"hosted_zone_id"=>"/hostedzone/XXXXXXXXXX",
"ttl"=>"3600",
"type"=>"A",
"value"=>[{"value"=>"1.1.1.1"}],
"id"=>"/hostedzone/XXXXXXXXXX"}
def记录参数
许可证!([:托管区\u id,:域名,:类型,:ttl,:别名,:值])到!
结束
def销毁
值=参数[:值]
#返回[“1.1.1.1”}允许:true>]
#希望它返回[{“value”=>“1.1.1.1”}]
结束
如果该散列是参数[:value]
的值,则访问内部的值
键,如:
params[:value] = {
"_method"=>"delete",
"authenticity_token"=>"...",
"domain_name"=>"test.testmodule2.com.",
"hosted_zone_id"=>"/hostedzone/XXXXXXXXXX",
"ttl"=>"3600",
"type"=>"A",
"value"=>[{"value"=>"1.1.1.1"}],
"id"=>"/hostedzone/XXXXXXXXXX"
}
params['value']['value'][0]['value']
# => "1.1.1.1"
params['value']['value'][0].keys
# => ["value"]
谢谢你的快速回复。当我输入[:value]时,它会打印出正确的值,但是当我稍后调用该变量时,当我需要只是数组对象时,它会返回
“[“1.1.1.1”}允许的:true>”
。有什么想法吗?由于您的结构,您必须访问不包含ActionControllerParameters的数组,然后访问像p params['value']['value'][0]['value']
这样的值键,所以现在没有办法只获取数组/哈希而不是值?请尝试使用params.to\u unsafe\u h[:value]
,你得到你的预期输出了吗?最后一个做到了!我能够通过散列而不是对象。非常感谢你的帮助,我真的很感激!
params[:value] = {
"_method"=>"delete",
"authenticity_token"=>"...",
"domain_name"=>"test.testmodule2.com.",
"hosted_zone_id"=>"/hostedzone/XXXXXXXXXX",
"ttl"=>"3600",
"type"=>"A",
"value"=>[{"value"=>"1.1.1.1"}],
"id"=>"/hostedzone/XXXXXXXXXX"
}
params['value']['value'][0]['value']
# => "1.1.1.1"
params['value']['value'][0].keys
# => ["value"]