Helpers
导出、引入辅助方法。
方法
解释
helper
把 Helper 方法变成 Controller 方法,针对的是整个 module
helper_method
把 Controller 方法变成 Helper 方法,针对的是单个 method
helper(*args, &block)
功能和 include
类似,只是稍微智能了一点。
参数类型,可分为 3 类:String、Symbol,Module,block。这些参数还可以混合使用。
当参数是模块名时,直接 include 此模块 (没有 requires )
而当参数是字符串或符号时,会根据约定 require 相关文件,并 include 相关模块。
此外,helper 可以接受并处理一个代码块。(不推荐)
最后要说的是:上述参数类型可以混合使用,你可以同时传递符号、字符串、模块和代码块给 helper 方法。
helper_method(*meths)
以元编程的形式定义同名 Helper 方法,然后 send 调用原 Controller 里的方法。
如下文举例,Controller 里有 current_user
方法,可以在视图里使用:
在视图里:
helper 和 helper_method 可以简单理解为一对作用相反的操作。
除上述两方法外,还有:
modules_for_helpers
被上面的 helper 方法所调用。
clear_helpers
只保留与此 Controller 同名的 Helper 模块的辅助方法,其它模块的辅助方法清除掉。
最后更新于