2011-09-29 71 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 
相关问题