我正在使用Ruby on Rails 3,我想在其相关的帮助文件(accounts_helper.rb)中显式包含一个控制器(accounts_controller.rb)方法,以便我可以在另一个控制器中包含该帮助程序并使用其方法。我需要这个,因为我可以在helper中移出accounts_controller.rb中所述的方法代码,但我需要在其他控制器中使用该方法。
由于此问题也与此other question有关,我认为以这种方式解决后者问题:
(1)在accounts_controller.rb中我陈述
def method_name
...
end
(2)在accounts_helper.rb中我可以包含method_name
... 如何执行此操作?
(3)在posts_account.rb中我可以包含accounts_helper.rb ... 如何做到这一点?
这是一个好方法吗?如果是这样,我该如何编写步骤2和3?
答案 0 :(得分:4)
如果要跨控制器和视图/助手使用该方法,可以将其声明为helper_method
在application_controller
helper_method :some_method
def some_method
// some common stuff
end
这将使该方法跨控制器和视图可用
答案 1 :(得分:0)
一个想法 - 将helper方法放在application_controller.rb中,然后您可以在每个控制器的基础上声明何时将其公开给视图 - 或者在application_controller.rb中全局显示。
答案 2 :(得分:-1)
如果您需要在多个控制器中使用该方法,那么我建议将其放入application_controller.rb