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

主頁 > 知識庫 > 淺談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機制的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 鞍山市| 德钦县| 杨浦区| 西安市| 武邑县| 马山县| 翁源县| 石景山区| 保德县| 拜泉县| 平江县| 麻阳| 承德市| 繁昌县| 洮南市| 铁岭县| 广宁县| 澜沧| 新泰市| 英吉沙县| 重庆市| 法库县| 大庆市| 永靖县| 屯门区| 红原县| 修水县| 治县。| 昌图县| 那曲县| 阳朔县| 阳江市| 云梦县| 观塘区| 旬阳县| 大连市| 息烽县| 进贤县| 商都县| 毕节市| 静安区|