我有两个父控制器,一个用于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
实现这一点的正确方法是什么?