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

时间:2011-05-20 12:02:08

标签: ruby-on-rails ruby refinerycms

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

module Admin
    module myHelper
        def somefunc
        end
    end
end

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

3 个答案:

答案 0 :(得分:55)

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

class MyController < ApplicationController
    helper Admin::MyHelper
    ...
end

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

答案 1 :(得分:24)

application_helper.rb

module ApplicationHelper
  include Admin::MyHelper
end

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

答案 2 :(得分:1)

您可以尝试使用Admin::myHelper::somefunc等完整对象引用从somefunc模块外部调用Admin