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接口的一部分。 –