2013-04-10 49 views
0

的控制器I使用inboxes宝石,我需要添加色器件方法(:authenticate_user!)至inboxes宝石的base_controller。对不起,我的英语重新打开宝石

+0

像所有的Ruby方法,重新打开它,并添加你想要什么。 – apneadiving 2013-04-10 08:59:23

回答

2

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

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

如果你可以指定自己的基本控制器,你就可以延长收件箱:: BaseController像这样:

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

希望这有助于。

1

如果你看到在收件箱:: BaseController控制器,它是从应用控制器继承,所以你可以添加方法应用控制器,然后可以从收件箱:: BaseController使用方法。

,但如果你想添加收件箱里面的方法:: BaseController然后为它编写猴子补丁文件,并把里面的config /初始化文件夹

如文件:

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

我不能将此方法添加到ApplicationController,因为我不需要这个。 在第二种情况下,这不起作用,因为它不知道'before_filter'方法 – Eugene 2013-04-10 11:32:58