我第一次在轨道上涉及ruby并且在尝试从控制器加载gem时遇到了问题。
要安装gem,我将其添加到(source
下方的顶部)Gemfile并运行bundle install
。 gem显示为已安装且位于Gemfile.lock中。安装时,系统会提示我输入sudo密码,bundle show <gem>
会在系统路径(/var/lib/gems
)中显示该密码。
在控制器中(app/controllers/my_controller.rb
),我要求如下:
class MyController < ApplicationController
def index
@somevar = dostuff
end
private
def dostuff
require 'some/lib'
return "foo"
end
end
当我访问该应用时,我收到以下错误:
cannot load such file -- some/lib
如果我将dostuff
函数放入项目根目录中dostuff.rb
并使用ruby dostuff.rb
执行它,则可以正常加载gem。
我是否遗漏了有关如何在铁轨环境中加载宝石的信息,或者我是否错误地加载了宝石?
我已经阅读了这些类似的问题,但他们还没有解决问题:
Rails can't find installed gem - rbenv
是唯一的解决方案吗?我想尝试使用系统gem。
Does Rails load all installed gems? - 我明确加载但失败了