<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    rails事務

    Posted on 2010-02-14 01:04 leekiang 閱讀(844) 評論(0)  編輯  收藏 所屬分類: ruby
    1,around_filter進行action的自動事務處理
    在controller里面可以使用around_filter來進行action的包裝,當action中彈出異常的時候渲染一個特殊的出錯 頁面。將action代碼包裝在ActiveRecord::Base.transaction函數的block中執行,當引發異常后截獲并重新拋出一個 ActiveRecord::Rollback異常讓rails將數據回滾掉。ActiveRecord::Base.transaction對 ActiveRecord::Rollback異常處理后不會再將該異常往外面拋。

    around_filter :around_action_filter
    protected
    def transaction
    ret = true
    ActiveRecord::Base.transaction do
    begin
    yield if block_given?
    rescue Exception => ex
    set_notice(ex.message)
    ret = ex.message
    raise ActiveRecord::Rollback, ex.message
    end
    end
    return ret
    end
    def around_action_filter
    return yield if request.get?
    redirect_to(:controller => "error_display", :action => "error_notice") if?
    transaction { yield if block_given? } != true
    end

    這里的transaction函數可以用在action里面作為手動事務處理的解決辦法。
    http://www.cgpad.com/SPAN/articles_show/940
    主站蜘蛛池模板: 亚洲视频免费在线看| 香蕉视频免费在线播放| 亚洲精品9999久久久久无码| 鲁大师在线影院免费观看| 久久香蕉国产线看观看亚洲片| 亚洲午夜国产精品无卡| 一边摸一边桶一边脱免费视频| 亚洲免费视频在线观看| 亚洲综合一区二区精品导航| 99ee6热久久免费精品6| 亚洲日本香蕉视频| 欧美三级在线电影免费| 亚洲va无码手机在线电影| 国产99视频精品免费专区| 久久精品国产亚洲AV无码偷窥| 最近免费字幕中文大全视频| 亚洲一级黄色大片| 两个人看的www免费| 免费永久看黄在线观看app| 人妻仑刮八A级毛片免费看| 久久久久国产成人精品亚洲午夜 | 久久er国产精品免费观看2| 久久精品亚洲中文字幕无码网站| 91精品国产免费网站| 亚洲人成自拍网站在线观看| 免费a级毛片永久免费| 精品人妻系列无码人妻免费视频| 国产免费一区二区三区VR| 色爽黄1000部免费软件下载| 亚洲女初尝黑人巨高清| 免费v片在线观看视频网站| 亚洲国产成人久久一区二区三区| 亚洲精品国产综合久久一线| 亚洲精品无码久久久久牙蜜区| 免费一看一级毛片| 日本视频在线观看永久免费| 亚洲国产欧美日韩精品一区二区三区| jizzjizz亚洲| 全部在线播放免费毛片| 麻豆亚洲av熟女国产一区二| 国产在线19禁免费观看|