Gem在Rails应用程序中不可用,但在Rails控制台(IMGKit)中工作正常

时间:2012-06-30 02:01:43

标签: ruby-on-rails ruby rvm bundler

尝试在我的一个Rails控制器中创建一个IMGKit实例:

def wkhtmltoimage
  ...
  kit = IMGKit.new("http://#{request.host_with_port}/?auth_token=" + token)
  img = kit.to_img(:jpg)
  file = kit.to_file(Rails.root + "public/uploads/testimage.jpg")
  ...
end

当我加载页面时,我得到了这个:

NameError in PagesController#wkhtmltoimage

uninitialized constant PagesController::IMGKit

在我的Gemfile中,我包含了正确的宝石:

gem 'imgkit'

Bundler安装得很好。当我运行Rails控制台时,它就在那里工作:

1.9.3p194 :005 > IMGKit.new("http://google.com")
 => #<IMGKit:0x007fb08d16a658 @source=http://google.com, @stylesheets=[], @options={}> 
1.9.3p194 :006 > 

为什么IMGKit类在Rails控制台中运行而在应用程序中不运行?有什么建议?使用RVM,Pow,Rails 3.2.6(以及所有其他宝石都可以正常使用该设置)。

用答案编辑

重新启动pow服务器似乎解决了问题。刚进入终端:

touch tmp/restart.txt

应该这样做。

2 个答案:

答案 0 :(得分:1)

重新启动pow服务器似乎解决了问题。刚进入终端:

touch tmp/restart.txt

应该这样做。

答案 1 :(得分:0)

您将套件设置为控制器中的本地变量。您是否尝试将其设置为控制器中的实例变量(@kit)?