簡體   English   中英

合並ActionController :: Parameters與rails 5

[英]Merge ActionController::Parameters with rails 5

在rails 4中,我可以合並! StrongParams,但由於Rails 5(beta1)合並了! 不可用。 這是在控制器中執行此操作的最佳方法

  params = ActionController::Parameters.new({
             name: 'Francesco',
             age:  22,
             role: 'admin'
         })
         params.merge!(city: "Los Angeles")

據我從源代碼中看到,您已經merge而不是merge! 換句話說,似乎不可能就地修改哈希值。

以下代碼將起作用:

params = ActionController::Parameters.new({
             name: 'Francesco',
             age:  22,
             role: 'admin'
         })
params = params.merge(city: "Los Angeles")

params.merge!(城市:“洛杉磯”)與Rails5.0.1一起使用

在此處輸入圖片說明

在Rails 5中:ActionController :: Parameters現在返回一個對象而不是哈希。

因此您必須使用params.permit(:city).to_h來訪問城市。

有關更多詳細信息,ActionController :: Parameters如何在Rails5中工作?

參考: http : //www.rortuts.com/ruby-on-rails/rails5-actioncontrollerparameters/

希望這對任何人都有幫助。

def comment_params
  params.require(:comment).permit(:title, :user_id, :color)
end

我想將顏色屬性與我的自定義顏色代碼或名稱合並。 以便動態合並顏色屬性

像這樣在Rails 5中初始化參數,

params = ActionController::Parameters.new(comment_params)
params = params.merge(color: "green")
new_params = params.to_h.merge(city: "Los Angeles")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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