重新打开宝石的控制器

时间:2013-04-10 08:36:29

标签: ruby-on-rails controller gem metaprogramming

我使用inboxes gem,我需要将设计方法(:authenticate_user!)添加到inboxes gem的base_controller。对不起我的英文

2 个答案:

答案 0 :(得分:2)

我不熟悉收件箱gem,但如果您无法指定自己的收件箱控制器(例如,通过路由),您可以考虑将此before_filter添加到您的ApplicationController:

before_filter :authenticate_user! if self.controller_path == 'inboxes/base'

如果您可以指定自己的基本控制器,那么您将能够像这样扩展Inboxes :: BaseController:

class MyInboxesController < Inboxes::BaseController
  # ...
end

希望这有帮助。

答案 1 :(得分:1)

如果您看到Inboxes :: BaseController控制器,它将继承自应用程序控制器,因此您可以将方法添加到应用程序控制器,然后可以使用Inboxes :: BaseController方法。

但是如果你想在Inboxes :: BaseController中添加方法,那么为它编写一个猴子补丁文件并将文件放在config / initializer文件夹中

像:

class Inboxes::BaseController
  #
  # Add method here  
  # 
end