【发布时间】:2012-06-30 02:01:43
【问题描述】:
尝试在我的 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:
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(以及所有其他 gem 都可以在该设置下正常工作)。
编辑答案
重启 pow 服务器似乎已经解决了这个问题。只需放入终端:
touch tmp/restart.txt
应该可以的。
【问题讨论】:
-
Gemfile 更改时 pow 是否会自动重新加载应用程序? 'gem :imgkit' 行是 Gemfile 中任何组的一部分吗?如果你在 wkhtmltoimage 方法中说 '::IMGKit.new' 会更好吗?
-
@lain: 我相信重启 pow 解决了这个问题。无论如何,它今天早上正在工作(我确实重新启动了)。感谢您的建议!请随意将其作为答案,我会将其标记为正确答案。
标签: ruby-on-rails ruby rvm bundler