簡體   English   中英

參數在Rails請求中加倍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM