美文网首页工作生活
术-机制:rails中的around回调

术-机制:rails中的around回调

作者: 稻草人_b788 | 来源:发表于2019-06-29 18:31 被阅读0次

    一、around回调

    在rails中除了before回调和after回调,还有一种around回调
    比如around_save、around_update、around_destroy

    二、around回调何时触发

    around回调在before和after之间触发,即它可以在方法执行的前后执行。
    就是我们可以在around回调中先执行某些代码,然后通过yield执行方法,最后再执行某些代码。
    案例:
    我们以around_save回调为例,顾名思义,它的意思是在执行save方法时触发。
    其一般流程为:

        ....#do somegthing
        yield #将会去执行save方法
        ....#do somegthing
    

    我们在user model中使用around_save回调:

    class Group
    around_save :test_around_save
        def test_around_save
        puts "in around save"
        yield #将会去执行save方法
        puts "out around save"
    end
    
    > g = Group.new(title: "xxx")
    > g.save
    in around save
    Group Create...........#SQL语句
    out around save
    => true
    

    执行结果为:



    同理如果使用around_update回调,则yield会去执行update方法,如果使用的是around_destroy回调,则yield会去执行destroy方法。

    三、参考资料

    1.Rails: around_* callbacks

    相关文章

      网友评论

        本文标题:术-机制:rails中的around回调

        本文链接:https://www.haomeiwen.com/subject/owapcctx.html