校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 淺談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機制的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 南昌县| 北票市| 龙里县| 遵义市| 石嘴山市| 保山市| 渭南市| 大洼县| 石狮市| 元氏县| 焉耆| 察雅县| 永修县| 乌鲁木齐市| 永胜县| 烟台市| 阜康市| 金山区| 确山县| 阿鲁科尔沁旗| 新疆| 玛多县| 郸城县| 林西县| 鲁山县| 大埔区| 邵东县| 雷州市| 长武县| 安龙县| 咸阳市| 镇江市| 蛟河市| 东乡县| 达孜县| 江永县| 乌海市| 洪洞县| 平顶山市| 崇信县| 安泽县|