2012-08-09 19 views
0

我正在进入宝石进行一些测试,我已经从lib中加载方法并将它们用于我的应用程序,这里的问题是我正在尝试拨打:如何将我的帮手包含进我的宝石中并将它们加载到Rails应用程序中

应用程序/佣工/ test_helper.rb中

module TestHelper 
    def tags_inserted(person) 
    content_tag(:p, "Hello #{person}!") 
    end 
end 

,当我写:

= tags_inserted('myname') 

我的代码里面只是说:

undefined method `tags_inserted' for #<#<Class:0x00000003efdc80>:0x00000003fce4c0> 

心中已经做了一些搜索和大家说,在宝石的佣工的标准是把它们放在里面/lib目录 directorie,但我的老板告诉我,将它们放置在/应用程序/佣工/应该工作, 我该怎么办?

回答

0

我最后一次与轨道2 我已经放在辅助模块中的lib目录与init.rb添加以下行这是摆在根目录中的宝石/插件做到了:

ActionController::Base.helper TestHelper 

它使TestHelper模块方法可用于模板。下面是上述帮助方法的工作方式:helper method

+0

我调用方法,改变了一些东西,但将其称为= Newgem.tags_inserted,它说:未定义的方法content_tag(),它的神奇,因为它被认为是part的红宝石不是吗? – 2012-08-10 19:58:46

+0

它是rails的一部分,但probaby rails不是你的宝石的一部分,所以这种方法不适用于你。您必须将操作视图添加为newgem.gemspec中的依赖项。然后包含一个模块ActionView :: Helpers :: TagHelper。需要action_view可能也需要。 – pkubicki 2012-08-10 20:36:10

+0

thnx帮了很大忙 – 2013-04-05 20:46:11

相关问题