我如何在不同的视图中使用帮助器

Han*_*ans 35 ruby ruby-on-rails refinerycms

我现在正在使用炼油厂的cms.我创建了一个引擎,并带有一些助手app/helpers/admin/.现在我想在我的前端视图(即.app/views/myapp/index)中使用这些助手.但我不能......未定义的方法错误.除了将整个事情复制到一起之外我该怎么做app/helpers/?助手看起来像这样

module Admin
    module myHelper
        def somefunc
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

那么可以somefunc在Admin模块之外使用吗?

bob*_*ics 59

在视图中包含来自非标准路径的帮助程序的"Rails方式"是在控制器中使用.helper方法.

class MyController < ApplicationController
    helper Admin::MyHelper
    ...
end
Run Code Online (Sandbox Code Playgroud)

http://apidock.com/rails/AbstractController/Helpers/ClassMethods/helper

  • 这应该是公认的答案,比全球包括助手更好. (5认同)

d11*_*wtq 27

在你的application_helper.rb:

module ApplicationHelper
  include Admin::MyHelper
end
Run Code Online (Sandbox Code Playgroud)

这会将这些辅助方法导入到其中ApplicationHelper,从而使它们在您的视图中可用.你真的可以在你的任何助手那里做到这一点.