由于默认情况下所有助手都包含在所有控制器中,因此最常见的方法是对函数进行不同的命名,例如link_to_alert_posts
和link_to_alert_students
。
第二种方法是禁用包括所有助手并在控制器中选择您需要的助手。
config.action_controller.include_all_helpers = false
class PostsController
helper :posts
end
class StudentsController
helper :students
end
在这种情况下,所有由 Posts Controller 渲染的视图都将具有 Posts Helper 的功能,而对于 Students Controller - 来自 Students Helper。
第三种方法是使用 module_function 并在所有调用前加上辅助模块名称。不过,我从未见过这种方法特别适用于 Rails 助手。
module StudentsHelper
module_function
def link_to_alert
end
end
StudentsHelper.link_to_alert
另一种方法是使用演示者或装饰者,但这是一个完全不同的主题。