すべてのヘルパーはデフォルトですべてのコントローラーに含まれているため、最も一般的な方法は、関数に別の名前を付けることです。たとえばlink_to_alert_posts
、とlink_to_alert_students
。
2番目の方法は、すべてのヘルパーを含めることを無効にして、コントローラーで必要なヘルパーを選択することです。
config.action_controller.include_all_helpers = false
class PostsController
helper :posts
end
class StudentsController
helper :students
end
この場合、Posts Controllerによってレンダリングされるすべてのビューは、Posts Helperからの機能を持ち、StudentControllerの場合はStudentsHelperからの機能を持ちます。
3番目の方法は、module_functionを使用して、すべての呼び出しの前にヘルパーモジュール名を付けることです。私はこれが特にRailsヘルパーで使用されるのを見たことがありません。
module StudentsHelper
module_function
def link_to_alert
end
end
StudentsHelper.link_to_alert
別のアプローチはプレゼンターまたはデコレーターを使用することですが、それはまったく異なるトピックです。