1

次のルビー ハッシュをアクティブなリソース (3.0.9) の find(:from) 呼び出しに渡そうとしています。

my_hash = {
            :p => {:s => 100, :e => 2},
            :k => "blah",
            :f => [
                   {
                     :fl => :bt,
                     :tp => :trm,
                     :vl => "A::B"
                   },
                   {
                     :fl => :jcni,
                     :tp => :trm,
                     :vl => [133, 134]
                   },
                   {
                     :mnfl => :bmns,
                     :mxfl => :bmxs,
                     :tp => :rfstv,
                     :vl => 1e5
                   },
                   {
                     :fl => :bpo,
                     :tp => :rftv,
                     :op => :eta,
                     :vl => 1.months.ago.strftime("%Y-%m-%d")
                   }
                  ]
          }    

Resource.find_by_x_and_y(:all, :from => :blah, params: my_hash)

サーバー側のアクションでは、params ハッシュを出力すると、すべてがめちゃくちゃになります。( :f にマップされた配列の最後の 3 つのハッシュ)

{
  "f" => [
          {
            "fl" => "bt",
            "tp" => "trm",
            "vl" => "A::B"
          },
          {
            "fl" => "jcni",
            "tp" => "trm",
            "vl" => [
                     "133",
                     "134"
                    ],
            "mnfl" => "bmns",
            "mxfl" => "bmxs"
          },
          {
            "tp" => "rfstv",
            "vl" => "100000.0",
            "fl" => "bpo",
            "op" => "eta"
          },
          {
            "tp" => "rftv",
            "vl" => "2013-01-25"
          }
         ],
  "k" => "blah",
  "p" => {
    "e" => "2",
    "s" => "100"
  },
  "action" => "blah",
  "controller" => "x/Y",
  "format" => "json"
}

my_hash.to_query は私に与えます

f[][fl]=bt&f[][tp]=trm&f[][vl]=A%3A%3AB&f[][fl]=jcni&f[][tp]=trm&f[][vl][]=133&f[][vl][]=134&f[][mnfl]=bmns&f[][mxfl]=bmxs&f[][tp]=rfstv&f[][vl]=100000.0&f[][fl]=bpo&f[][op]=eta&f[][tp]=rftv&f[][vl]=2013-01-25&k=blah&p[e]=2&p[s]=100

インデックスがないため、混同されます。

「[]」を使用したこのタイプのシリアル化の名前はありますか? これは、任意にネストされたハッシュ/配列/プリミティブを忠実にシリアライズ/デシリアライズすることが保証されていますか? アクティブなリソースを正常に動作させるにはどうすればよいですか?

4

0 に答える 0