在铁路要求中,参数加倍

时间:2013-08-14 08:49:22

标签: ruby-on-rails backbone.js ruby-on-rails-4 marionette

我正在使用骨干在客户端更新模型,在服务器端我正在检索双参数:

{"_id"=>"5209df7c2e21a971fd000002",
 "name"=>"Gary Miller",
 "email"=>"gary.miller@att.net",
 "last_login"=>"2013-03-18T20:37:53+00:00",
 "timezone"=>"Central Time (US & Canada)",
 "mobile"=>nil,
 "address"=>nil,
 "address_attributes"=>{},
 "action"=>"update",
 "controller"=>"users",
 "id"=>"5209df7c2e21a971fd000002",
 "user"=>
  {"_id"=>"5209df7c2e21a971fd000002",
   "email"=>"gary.miller@att.net",
   "name"=>"Gary Miller",
   "last_login"=>"2013-03-18T20:37:53+00:00",
   "timezone"=>"Central Time (US & Canada)",
   "mobile"=>nil}}

在网络检查员的客户端,我检查了有效负载,这是客户端发送的数据:

_id: "5209df7c2e21a971fd000002"
address: null
address_attributes: {}
email: "gary.miller@att.net"
last_login: "2013-03-18T20:37:53+00:00"
mobile: null
name: "Gary Miller"
timezone: "Central Time (US & Canada)"

双重参数让我烦恼。因此,欢迎任何解决的想法。

2 个答案:

答案 0 :(得分:0)

这是因为config / initializers / wrap_parameters.rb

上的内容正在发生
ActiveSupport.on_load(:action_controller) do
  wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
end

有关http://api.rubyonrails.org/classes/ActionController/ParamsWrapper.html

的更多信息

答案 1 :(得分:-1)

我相信rails是一个快捷方式,通过查看params哈希后创建一个包含模型中存在的属性的哈希。您可能认为发送了重复数据,但它只是以方便的方式分组的原始数据集。

例如,要创建具有批量分配的新用户,您可以执行以下操作:

new_user = User.new(params[:user]) 

new_user现在将具有从哈希用户设置的所有属性。