【发布时间】:2013-04-10 08:36:29
【问题描述】:
我使用inboxes gem,我需要将设计方法(:authenticate_user!)添加到inboxes gem 的base_controller。对不起我的英语
【问题讨论】:
-
像所有 ruby 方法一样,重新打开它并添加你想要的。
标签: ruby-on-rails controller gem metaprogramming
我使用inboxes gem,我需要将设计方法(:authenticate_user!)添加到inboxes gem 的base_controller。对不起我的英语
【问题讨论】:
标签: ruby-on-rails controller gem metaprogramming
我不熟悉收件箱 gem,但如果您无法指定自己的收件箱控制器(例如,通过路由),您可以考虑将 before_filter 添加到您的 ApplicationController:
before_filter :authenticate_user! if self.controller_path == 'inboxes/base'
如果您可以指定自己的基本控制器,您就可以像这样扩展 Inboxes::BaseController:
class MyInboxesController < Inboxes::BaseController
# ...
end
希望这会有所帮助。
【讨论】:
如果您看到 Inboxes::BaseController 控制器,它是从应用程序控制器继承的,因此您可以向应用程序控制器添加方法,然后可以从 Inboxes::BaseController 使用方法。
但如果你想在 Inboxes::BaseController 中添加方法,那么为它编写一个猴子补丁文件并将该文件放在 config/initializer 文件夹中
喜欢:
class Inboxes::BaseController
#
# Add method here
#
end
【讨论】:
before_filter