[英]Params are doubled in rails request
我正在用骨干從客戶端更新一個模型,而在服務器端我正在獲取雙重參數:
{"_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)"
雙重參數的事情困擾着我。 因此,歡迎解決任何想法。
發生這種情況是因為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的更多信息
我認為,通過查看params哈希值后,使用模型中存在的屬性創建哈希值是一種捷徑。 您可能會認為有重復的數據正在發送,但這只是以方便的方式將原始數據分組的方式。
例如,要創建具有批量分配的新用戶,可以執行以下操作:
new_user = User.new(params[:user])
現在,new_user將具有哈希用戶設置的所有屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.