我的Rails项目上有一个自定义模块,我希望它是一个before_filter,就在那里 我能做的一种方式吗?
before_filter TokenGenerator::Generator.generate_token("mytoken")
答案 0 :(得分:6)
您可以使用block as a before_filter
:
before_filter do |controller|
TokenGenerator::Generator.generate_token("mytoken")
end
或者你可以创建一个单独的类:
class TokenFilter
def self.filter(controller)
TokenGenerator::Generator.generate_token("mytoken")
end
end
#...
before_filter TokenFilter
或通常的方法:
before_filter :token_generator
#...
private
def token_generator
TokenGenerator::Generator.generate_token("mytoken")
end
答案 1 :(得分:4)
您可以为generate_token创建一个委托方法,然后使用前一个过滤器的委托方法...
before_filter :generate_token
def generate_token
TokenGenerator::Generator.generate_token("mytoken")
end