当前位置:  开发笔记 > 编程语言 > 正文

alias_method:堆栈级别太深

如何解决《alias_method:堆栈级别太深》经验,为你挑选了1个好方法。

我正试图从另一个rails引擎装饰一个控制器.我有一个控制器方法,我想扩展只有一行.我宁愿不复制整个原始控制器方法.

这是我试过的:

  Backend::BaseContentsController.class_eval do
    def booking_update
      # do some stuff
      update
    end
    alias_method :update, :booking_update
  end

不幸的是,这引发了异常stack level too deep.通常继承我可以称为超级.在我的情况下,做什么是理想的?



1> Marek Lipka..:

你应该试试alias_method_chain:

def update_with_booking
  # do some stuff
  update_without_booking # that's your old update
end

alias_method_chain :update, :booking

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有