如何在控制器的关注中定义辅助方法

iro*_*and 7 ruby-on-rails helper

ColumnSort我的rails项目中有一个模块.

module ColumnSort
  extend ActiveSupport::Concern

  def sort_column
    # do something
  end
end
Run Code Online (Sandbox Code Playgroud)

我正在CompaniesController和它一起使用它UsersController.

class CompaniesController < ApplicationController
  include ColumnSort
  helper_method :sort_column
end

class UsersController < ApplicationController
  include ColumnSort
  helper_method :sort_column
end
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是我想helper_method :sort_column在模块中写下这一行ColumnSort.我怎么写呢?

Ale*_*una -3

您不必调用 helper_method。helper_method 是将控制器方法公开给视图,而不是从辅助类导入方法。

include ColumnSort
Run Code Online (Sandbox Code Playgroud)

这一行已经包含了 Helper 类中包含的所有方法。

您可以在 Rails API 文档中阅读更多相关信息:http://apidock.com/rails/ActionController/Helpers/ClassMethods/helper_method

  • 我想使用视图中的方法。 (9认同)
  • 因为我只使用这两个控制器和视图中的方法。还有其他控制器和视图无需使用“sort_column”方法即可工作。 (7认同)