简体   繁体   中英

How do I before_filter a Module::Class::method?

我在我的Rails项目上有一个自定义模块,我希望它是一个before_filter,我有办法吗?

before_filter TokenGenerator::Generator.generate_token("mytoken")

You can use a block as a before_filter :

before_filter do |controller|
    TokenGenerator::Generator.generate_token("mytoken")
end

Or you could create a separate class:

class TokenFilter
    def self.filter(controller)
        TokenGenerator::Generator.generate_token("mytoken")
    end
end

#...

before_filter TokenFilter

Or the usual method:

before_filter :token_generator

#...

private

def token_generator
    TokenGenerator::Generator.generate_token("mytoken")
end

You could create a delegator method to generate_token, then use the delegator method with the before filter...

before_filter :generate_token

def generate_token
  TokenGenerator::Generator.generate_token("mytoken")
end

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM