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 に答える