无法让awesome_print gem工作

时间:2013-02-22 02:32:47

标签: ruby rubygems awesomeprint

awesome_print看起来像一个非常好的宝石,所以我想尝试一下。

我参加了我的一个项目并做了:

gem install awesome_print

它说安装了一个gem,安装了文档等等。

然后,当我在那个项目中时,我去了我的Rails控制台尝试一下,但当我按照他们的帮助文件说require "awesome_print"时,我得到一个“无法加载这样的文件”。< / p>

有人有这个工作吗?

7 个答案:

答案 0 :(得分:24)

将它添加到您的Gemfile中,如下所示:

gem 'awesome_print', :require => 'ap'

我将它添加到开发组,因为这是我唯一需要的时间。 gem没有任何其他gem依赖项,所以我经常将它添加到我的Gemfile中。

另外,将这两行添加到〜/ .irbrc文件中,将ap设置为默认的寻呼机:

require "awesome_print"
AwesomePrint.irb!

请注意,如果你使用它,那么在你的Gemfile中没有安装awesome_print的任何项目都会在你运行rails c时引发这个错误:

cannot load such file -- awesome_print

根据〜/ .irbrc文件中的其他内容,这可能会导致其他副作用,例如搞乱提示。要避免这些,只需将两行添加到该文件的最后。

答案 1 :(得分:20)

gem install会将gem代码放在您的计算机上,但除非gem的源代码文件位于您的加载路径上,require将无法找到它们。 bundle exec查看最近的Gemfile.lock,并将其中列出的所有宝石的源代码添加到您的加载路径中。 Rails初始化包括让Bundler为您执行此操作。

一种解决方案是将awesome_print添加到您的Gemfile中。但是,这将导致您的应用程序将awesome_print作为依赖项。或者,您可以在启动Rails控制台然后需要它之后手动将awesome_print库添加到加载路径:

$ rails c
> $LOAD_PATH << path/to/awesome_print-x.x.x/lib
> require 'awesome_print'
> ap {foo: {bar: {baz: :qux}}}

如果您正在使用RVM,则路径可能类似于

~/.rvm/rubies/ruby-x.x.x-pxxx@your_gemset_name/gems/awesome_print-x.x.x/lib

答案 2 :(得分:6)

安装它:

$ gem install awesome_print

如果你愿意,可以在你的GemFile中包含它:

gem 'awesome_print', :require => 'ap'

将此行添加到文件〜/ .irbrc:

require 'awesome_print'
AwesomePrint.irb!

重启你的shell!

只是一个注释:我做了这个并且它没有立即工作,可能需要重新启动计算机...或者我只需要关闭所有shell标签并再次打开终端!

答案 3 :(得分:1)

如果您希望在Gemfile中没有它的情况下进行安装,请按以下步骤操作:

$ gem install awesome_print

我遇到了成功安装的问题,但它不在正确的目录中。

在这种情况下,只需将其放在.bashrc中,这将设置加载路径:

export PATH="/home/user/.gem/ruby/2.3.0/bin:$PATH"
PATH="`ruby -e 'puts Gem.user_dir'`/bin:$PATH"

2.3.0 替换为您正在使用的ruby版本 将用户替换为用户名,或者如果您使用的是vagrant,则替换为 vagrant

重新加载.bashrc或退出终端重新加载更改,然后再次安装gem。

答案 4 :(得分:0)

使用

安装
gem install awesome_print

按如下方式将其添加到您的~/.irbrc~/.pryrc中(对于irb / rails consolepry

$LOAD_PATH << "path/to/awesome_print/lib"
require "awesome_print"
AwesomePrint.irb!

要获取安装awesome_print的路径,请

gem which awesome_print

我的看起来像这样,您的很可能与众不同,因此,请更改它,尤其是第一行

$LOAD_PATH << "~/.asdf/installs/ruby/2.6.3/lib/ruby/gems/2.6.0/gems/awesome_print-1.8.0/lib/"
require "awesome_print"
AwesomePrint.irb!

答案 5 :(得分:0)

就我而言,我在 PATH 等问题上苦苦挣扎,同时遗漏了一些明显的东西!

# which ruby
/usr/bin/ruby
# ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]
# locate bin/ruby
/usr/bin/ruby
/usr/local/Cellar/ruby/2.7.2/bin/ruby
/usr/local/opt/ruby/bin/ruby
# /usr/local/opt/ruby/bin/ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin17]
#

啊哈!版本渣滓。我正在运行一个旧的红宝石。谢谢,苹果!

# sudo mv /usr/bin/ruby /usr/bin/ruby_2.3.7
# sudo ln /usr/local/opt/ruby/bin/ruby /usr/bin/ruby

解决了问题!

也许我可以告诉 brew 做一些事情来解决问题,但我很不耐烦。 :-)

答案 6 :(得分:-1)

对我有用的一件事是在输入'require'awesome_print''后,我会把'ap命令',

例如:

ap Event.all