2011-09-29 46 views

回答

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 

或者常用的方法:在關注的問題或安全問題(或兩者)的私人分離token_generator`:

before_filter :token_generator 

#... 

private 

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

在清單'?我傾向於前者,因爲如果沒有明確的路線,除非直接重定向到..對不對?我想我在這裏沒有讀足夠的內容。 –

+2

@Adam:對我來說這是一個清潔問題,'token_generator'方法不是控制器類的外部接口的一部分,所以它不應該是類的Ruby接口的一部分。 –

4

您可以創建一個委託方法generate_token,然後使用委託方法與過濾前...

before_filter :generate_token 

def generate_token 
    TokenGenerator::Generator.generate_token("mytoken") 
end 
相關問題