婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談Rails 4 中Strong Parameters機制

淺談Rails 4 中Strong Parameters機制

熱門標簽:淮安自動外呼系統供應商 柯城手機地圖如何做地圖標注 外呼線路從哪里出來的 天津外呼系統怎么收費 AI電銷機器人 線路 中牟外呼系統違法嗎 漯河電銷 征服者企業地圖標注 巫師3地圖標注魔力之所

要弄明白Rails 4 中Strong Parameters機制,首先我們要看看Rails3中的Parameters

在 Rails3 中創建或更新 Active Record 對象時,會有 Mass Assignment 安全問題。所以 Model 中需要列一個白名單,聲明哪些屬性可以被 parameter 的數據更新。

Rails 3

# kings_controller.rb
def create
 #{ name: ‘David', sex:male, age: 31}
 @king = King.new(params[:king])
 if @king.save
  redirect_to @king
 else
  render 'new'
 end
end


# king.rb
class King
 attr_accessible :name
end

Rails 4

Rails 4 引入了 Strong Parameters 的機制,Model 不再負責白名單的維護,把過濾非法屬性的職責推給了 Controller。

# kings_controller.rb
def create
 # new parameter { name: ‘David' }
 @king = King.new(king_params)
 if @king.save
  redirect_to @king
 else
  render 'new'
 end
end

private

def king_params
 # old parameter { name: ‘David', sex:male, age: 31}
 # new parameter { name: ‘David' }
 params[:king].permit(:name)
end


# king.rb
class King

end 

什么是 Strong Parameters?

 

說白了 Strong Parameter 其是就是一層白名單過濾。

View 層穿過來的數據會轉化為一個 ActionController::Parameters 對象

過濾老的 ActionController::Parameters 對象,生成一個新的 ActionController::Parameters 對象。

* 只保留白名單屬性
* 實例變量 @permitted  賦為 true
把過濾后的 ActionController::Parameters 對象傳給 model,創建或更新對應的的 ActiveRecord 對象。
可以硬傳給 model,霸王硬上弓嗎?

未經 Strong Parameter 過濾的 ActionController::Parameters 對象的 @permitted 為 false(過濾后為 true)。如果硬傳給 Model,會報錯 ActiveModel::ForbiddenAttributesError 。

您可能感興趣的文章:
  • MyBatis3傳遞多個參數(Multiple Parameters)
  • Pytorch之parameters的使用
  • Struts2源碼分析之ParametersInterceptor攔截器
  • ECMAScript6函數剩余參數(Rest Parameters)
  • PowerShell函數中使用$PSBoundParameters獲取輸入參數列表實例
  • PDO版本問題 Invalid parameter number: no parameters were bound
  • asp.net Parameters.AddWithValue方法在SQL語句的 Where 字句中的用法
  • 基于parameters參數實現參數化過程解析

標簽:西雙版納 南昌 內江 甘孜 河池 大慶 棗莊 克拉瑪依

巨人網絡通訊聲明:本文標題《淺談Rails 4 中Strong Parameters機制》,本文關鍵詞  淺談,Rails,中,Strong,Parameters,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談Rails 4 中Strong Parameters機制》相關的同類信息!
  • 本頁收集關于淺談Rails 4 中Strong Parameters機制的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 都昌县| 治县。| 宁津县| 潍坊市| 武隆县| 绥中县| 万盛区| 新乐市| 德格县| 中江县| 阳新县| 岳阳县| 永德县| 明星| 通道| 岫岩| 石景山区| 无锡市| 东兴市| 张掖市| 措勤县| 通山县| 广德县| 大足县| 安宁市| 杂多县| 长治县| 临海市| 崇阳县| 鲁甸县| 新安县| 桐城市| 博野县| 桃园市| 新竹县| 繁昌县| 台南县| 拜泉县| 加查县| 贵州省| 朝阳区|