在助手文件和控制器文件中声明助手方法的区别

时间:2019-01-21 01:45:46

标签: ruby-on-rails ruby controller helper

在Ruby on Rails中,我们可以在控制器中声明一个辅助方法,例如

# app/controllers/my_controller.rb

class MyController < ApplicationController
  helper_method :helper_method_name

  ...

  private

  def helper_method_name
    ...
  end
end

和例如

# app/helpers/my_helper.rb

class MyHelper
  def helper_method_name
    ...
  end
end

有什么区别(在访问,使用等方面)?

2 个答案:

答案 0 :(得分:1)

方法 helper_method 用于显式共享控制器中定义的一些方法,以使其可用于视图。

这用于您需要从控制器助手/视图访问的任何方法(控制器中不提供标准助手方法)。

答案 1 :(得分:0)

如雷所说。您只需要在确实需要在控制器和助手/视图中同时使用它时,才使用 helper_method

通常,您希望针对各个方法使用控制器关注点和帮助程序(视图),因为这是惯例。