3
我有一个自定义的模块在我的Rails项目上,我希望它是一个before_filter,有没有 我可以做的一种方式?如何before_filter Module :: Class ::方法?
before_filter TokenGenerator::Generator.generate_token("mytoken")
我有一个自定义的模块在我的Rails项目上,我希望它是一个before_filter,有没有 我可以做的一种方式?如何before_filter Module :: Class ::方法?
before_filter TokenGenerator::Generator.generate_token("mytoken")
您可以使用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
您可以创建一个委托方法generate_token,然后使用委托方法与过滤前...
before_filter :generate_token
def generate_token
TokenGenerator::Generator.generate_token("mytoken")
end
在清单'?我倾向于前者,因为如果没有明确的路线,除非直接重定向到..对不对?我想我在这里没有读足够的内容。 –
@Adam:对我来说这是一个清洁问题,'token_generator'方法不是控制器类的外部接口的一部分,所以它不应该是类的Ruby接口的一部分。 –