如何在其辅助文件中显式包含控制器方法,以便可以在另一个控制器中包含该帮助器并使用该方法?

时间:2011-03-22 12:13:47

标签: ruby-on-rails ruby ruby-on-rails-3 methods

我正在使用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?

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

是合理的