好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Rails應用程序中同時修改操作沖突問題的解決方案

Rails應用程序中同時修改操作沖突問題的解決方案

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

Rails 應用程序中操作沖突是一個常見問題,Rails 提供了簡單有效的解決方法。

舉一個實際的例子:我們的系統里有一個商店模塊,商店中重要的一塊是對產品信息的管理,比如運營人員常常會編輯產品的信息,包括產品標題,營銷口號和價格等等。因為修改十分頻繁,碰巧同時編輯提交修改的話,就會偶爾遇到修改丟失的問題,運營人員 A 修改產品標題,運營人員 B 修改價格,A 和 B 提交修改都提示修改成功,但是結果上只是 A 的修改結果生效,B 的修改被 A 的修改沖掉了。

仔細研究原因,發現是因為修改功能缺少操作沖突機制,而修改操作同時發生導致了問題。 如下圖所示,A 和 B 同時從數據庫中查詢數據,在 web 頁面中修改同樣的數據,提交保存時是以 web 頁面中提交的數據為準,從而導致 A 的修改把 B 的修改給覆蓋了。

Rails 的 樂觀鎖Optimistic Locking 是解決這個問題的有力工具,它的原理是在數據庫表中增加一個字段(默認是 lock_version,可配置)記錄數據的版本號,每個提交的修改都帶上這個版本號,在真正 update 修改數據之前,先判斷提交的 lock_version 數據和數據庫中的是否一致,如果不一致,則認為發生數據沖突,將拋出 ActiveRecord::StaleObjectError 異常,這樣程序就可以捕獲這個異常,提醒用戶發生了沖突,由用戶去協調解決沖突。

相關示例代碼如下所示:

復制代碼 代碼如下:

# migration: add lock_version to products
add_column :products, :lock_version, :integer, defalut: 0

# update product with StaleObjectError checking
begin
  product.update(params[:product])
rescue ActiveRecord::StaleObjectError
  render 'confilct'
end

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

巨人網絡通訊聲明:本文標題《Rails應用程序中同時修改操作沖突問題的解決方案》,本文關鍵詞  Rails,應用程序,中,同時,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Rails應用程序中同時修改操作沖突問題的解決方案》相關的同類信息!
  • 本頁收集關于Rails應用程序中同時修改操作沖突問題的解決方案的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 公车被蹂躏出水很污的小说| 性欧美videos喷水| 麻豆网站免费| 激情影院免费观看| 俄罗斯aa毛片一级| 美女光身网站| 近親偷子亂伦ⅩⅩ99| 久久99热只有视精品6国产| 健身房短篇肉H系列| 成人片色情免费观看网站| 久久666| 91精品免费久久久久久久久| japenxxx| 巨肉超污巨黄H文| 保守娇妻被别人征服h| 欧美r级高清无删减在线观看| 扒开腿狂躁女人爽出白浆A片漫画 一男一女做爰高潮A片绿椅子 | 性生生活大片又黄又| 亚洲综合伊人制服丝袜美腿| 动漫jk美女被爆羞羞视频| 巨胸喷奶水www永久免费| 午夜dj高清在线视频| 女学生小嫩嫩裸体17c| 老牛无码人妻精品1国产| 国产爱视频| 被主人打屁股调教撅高| 美女被男人扒开腿猛?免费| 扒开臀缝撅好打烂| 国产精自产拍久久久久久蜜 | 免费一级毛片能看的| 青柠影视在线播放免费动漫| 无码色情x9zn77| 男男做的时候从哪进| 再深点灬舒服灬太大了aⅴ| 被领导糟蹋娇妻好紧小说| 日本美女三级| 从衣领摸进去揉她胸| 无套内射AV五十区| 色操插| 《性/生活》无删减| 91探花精品偷拍在线播放|