0

控制器功能接收参数,如

{"v1" => { "v2" => "1", "v3" => "" }, "v4" => "true"}

params功能允许使用

  • x = params[:v1], 相当于x = params["v1"]
  • if params[:v4], 相当于["true", "1"].include?(params["v4"])
  • if (params[:v1][:v2] == 1), 相当于params["v1"]["v2"] == "1"

有没有什么方法可以让行为比params功能更重要,但使用其他数据?

我希望能够写出这样的东西......

my_params = {"v1" => { "v2" => "1", "v3" => "" }, "v4" => "true"}
x = my_params[:v1]
if my_params[:v4]
if (my_params[:v1][:v2] == 1)

或者带一个功能some_function

x = some_function(my_params)[:v1]
if some_function(my_params)[:v4]
if some_function(my_params)[:v1][:v2] == 1)

我在Rails 2中。

4

1 回答 1

3

你想要一个访问无关紧要的哈希

h = { a: { b: 1, 'c' => 2 } }
=> {:a=>{:b=>1, "c"=>2}}
h[:a][:c]
=> nil


h2 = h.with_indifferent_access
=> {"a"=>{"b"=>1, "c"=>2}}

h2['a'][:c]  
=> 2
h2[:a][:c]
=> 2
于 2013-04-04T14:37:42.117 回答