我指的是您在 app/helpers 中创建的模块。它们是否可用于:

  • 意见?
  • Controller ?
  • 模型?
  • 测试?
  • 其他文件?
  • 有时?
  • 一直吗?
  • 最佳答案

    在 Rails 5 中,所有 Helper 都可用于所有 Views 和所有 Controllers,而没有其他任何东西。
    http://api.rubyonrails.org/classes/ActionController/Helpers.html

    在 View 中,您可以直接访问助手:

    module UserHelper
      def fullname(user)
        ...
      end
    end
    
    # app/views/items/show.html.erb
    ...
    User: <%= fullname(@user) %>
    ...
    
    在 Controller 中,您需要 #helpers 方法来访问它们:
    # app/controllers/items_controller.rb
    class ItemsController
      def show
        ...
        @user_fullname = helpers.fullname(@user)
        ...
      end
    end
    
    您仍然可以通过 include 使用其他类中的辅助模块。
    # some/other/klass.rb
    class Klass
      include UserHelper
    end
    
    旧的行为是所有的助手都包含在所有 View 中,并且只有每个助手都包含在匹配的 Controller 中,例如。 UserHelper 只会包含在 UserController 中。
    要返回此行为,您可以在 config.action_controller.include_all_helpers = false 文件中设置 config/application.rb

    关于ruby-on-rails - Rails 助手在哪里可用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43431955/

    10-13 01:29