如何在本地使用宝石?

时间:2014-02-21 16:35:26

标签: ruby-on-rails rubygems gem

我想在rails应用中使用gems 'better_errors''binding_of_caller'进行调试,但我不想在Gemfile中包含这些内容。有可能吗?我的第一个念头就是

gem install better_errors
gem install binding_of_caller

但它不起作用,我的意思是安装完成没有问题,但就是这样,当我在localhost上运行我的应用程序时,gem似乎根本不起作用。我需要某种配置集吗?

2 个答案:

答案 0 :(得分:1)

  

但我不想在Gemfile中包含那些。有可能吗?

是的,有可能。您可以在欲望文件夹(例如lib)中下载相应的目录,并在初始化程序中添加该gem类,以便在启动时加载它。配置因宝石而异。

  

我的第一个念头就是......但它不起作用,

当然,它不会。你的rails应用程序怎么能神奇地检测到你不知道你有更好的方法来显示错误。只是说你有cancer公式,医生会在没有你告诉他们的情况下自动将该公式应用于患者。应该在两个方面使用rails-app和gem进行一些交流,这样他们就可以更好地协调和工作。

  

我需要某种配置集吗?

是的,如上所述。

  

我不想强迫我的同事使用这些宝石。 KRUKUSA更多细节? //在评论中说

是的,在rails应用程序中包含这些宝石可以完成这项工作。此扩展程序将自动提供给您的工作人员。 (没有施加力:P)

看起来你想要不向其他同事展示这些宝石,如果是这样,你可以在使用这个技巧。

要实现这一点,首先只需在gem文件中添加gem,运行bundle然后使用git使其无法跟踪。您可以将GemfileGemfile.lock放入.gitignore文件中。或者你可以添加第一个添加宝石并用下面的命令将其标记为忽略。阅读更多here

 git update-index --assume-unchanged Gemfile Gemfile.lock 

答案 1 :(得分:0)

另一种可能性是创建自己的环境并相应地使用它。

  1. 拥有myenv的自己的配置:

    $ cp config/environments/{development,myenv}.rb
    
  2. config/database.yml中,添加环境myenv并使用与development相同的配置:

    development: &development
      <rest of the code you have on config/databases.yml>
      ...
    
    myenv:
      << *development
    
  3. Gemfile中添加您要在mydev群组中使用的自定义宝石:

    组:myenv do   宝石'better_errors'   宝石'binder_of_caller' 端

  4. 使用RAILS_ENV运行rails和rake,如下所示:RAILS_ENV=myenv rails c

  5. 这种方法的优势在于您仍然可以从仓库获取Gemfile的更新,如果您需要在Gemfile中添加一个宝石供所有人查看,您仍然可以。< / p>

    此外,没有人会在您的Gemfile中的myenv组中看到您安装的宝石。

相关问题