【发布时间】:2015-02-19 13:12:00
【问题描述】:
我有两个父控制器,一个用于 API,一个用于普通 html 页面。
class ApplicationController < ActionController::Base
...
end
class ApiController < ActionController::Metal
include AbstractController::Callbacks
...
end
我想在两个控制器上分享一些before_filter。我试过这样的事情:
class ApplicationController < ActionController::Base
include MyFilters
end
class ApiController < ActionController::Metal
include MyFilters
end
module MyFilters
before_filter :filter1
before_filter :filter2
def filter1
end
def filter2
end
...
end
还有这个:
module MyFilters
def self.included(klass)
klass.before_filter :filter1
klass.before_filter :filter2
end
def filter1
end
def filter2
end
...
end
但在这两种情况下我都会收到:
undefined method `before_filter' for MyFilters:Module
实现这个的正确方法是什么?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 multiple-inheritance