Как я могу before_filter модуль :: Class :: метод? - PullRequest
3 голосов
/ 29 сентября 2011

У меня есть собственный модуль в моем проекте Rails, и я хочу, чтобы он был before_filter, есть ли способ, которым я могу это сделать?

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

Ответы [ 2 ]

6 голосов
/ 29 сентября 2011

Вы можете использовать блок как 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
4 голосов
/ 29 сентября 2011

Вы можете создать метод делегата для generate_token, а затем использовать метод делегатора с фильтром before ...

before_filter :generate_token

def generate_token
  TokenGenerator::Generator.generate_token("mytoken")
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...