Ruby on rails 在rails中保存通过ajax从视图接收的数据

Ruby on rails 在rails中保存通过ajax从视图接收的数据,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,在控制器中中止时,这是我从Ajax调用中获得的javascript对象的格式: { "j_identifier" = > "24942", "charge" = > { "0" = > { "complainant" = > "", "address" = > "", "name" = > "",

在控制器中中止时,这是我从Ajax调用中获得的javascript对象的格式:

{
        "j_identifier" = > "24942",
        "charge" = > {
          "0" = > {
                  "complainant" = > "",
                  "address" = > "",
                  "name" = > "",
                  "agency" = > "",
                  "codefendant" = > {
                    "0" = > {
                            "name" = > "sdfsdsd",
                            "address" = > "fsdf",
                            "phone" = > "sdf"
                    },
                    "1" = > {
                           "name" = > "sdfs",
                           "address" = > "sdfs",
                           "phone" = > "sdf"
                    }
                  }
          },
          "1" = > {
                  "complainant" = > "",
                  "address" = > "",
                  "name" = > "",
                  "agency" = > "",
                  "codefendant" = > {
                    "0" = > {
                            "name" = > "sdfsdsd",
                            "address" = > "fsdf",
                            "phone" = > "sdf"
                    },
                    "1" = > {
                           "name" = > "sdfs",
                           "address" = > "sdfs",
                           "phone" = > "sdf"
                    }
                  }
         }
    }
}
这是我获取数据并保存数据的步骤:

 jcharge = params[:charge]
 if !jcharge.nil?
    jcharge.each do |key,charge|
         e = JCharge.new(charge)
         e.cmap_id = data.id
         e.save
         charge_id = e.id
         codefd = charge.codefendant
         if !codefd.nil?
              codefd.each do |k,codef|
                  cod = JuCharge.new(codef)
                  cod.jucharge_id = data.id
                  cod.save                       
              end
         end

     end
 end 
我遇到了以下解析错误:

   undefined method `codefendant' for #<ActiveSupport::HashWithIndifferentAccess:0x44b5ab0>
未定义的方法“codefendent”#

在您的示例中,
费用
是散列。可以使用方括号访问其值:

charge.codefendant # undefined method
charge[:codefendant] #=> ...

非常感谢您澄清了散列的概念,这就是问题所在。