1

我可以像 params[:id] 一样一一提取,但是如何像 params[:all] 或 parameters['all'] 一样提取所有这些。

Parameters: {"id"=>"aom7v66e309yjkd2x0aq", "video_type"=>"trailer"}
4

1 回答 1

2

Rails 参数是 的实例HashWithIndifferentAccess,是 的子类Hash

params.class
# => HashWithIndifferentAccess
params.is_a? Hash
# => true

Hash你可以得到整个params

params
# => {"id"=>"aom7v66e309yjkd2x0aq", "video_type"=>"trailer"}

或者#to_hash如果你需要一个普通的Hash

params.to_hash
# => {"id"=>"aom7v66e309yjkd2x0aq", "video_type"=>"trailer"}
params.to_hash.class
# => Hash

#keys

params.keys
# => ["id", "video_type"]

并且具有以下值的值#values

params.values
# => ["aom7v66e309yjkd2x0aq", "trailer"]

要提取特定密钥,您可以使用#slice

params = {"a"=>1, "b"=>2, "c"=>3}
params.slice("a", "c")
# => {"a"=>1, "c"=>3}

或其对应物#except

params = {"a"=>1, "b"=>2, "c"=>3}
params.except("b")
# => {"a"=>1, "c"=>3}
于 2013-04-09T09:38:34.777 回答