2013-04-10 53 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