17

awesome_print looks like a pretty nice gem, so I wanted to try it out.

I went to one of my projects and did:

gem install awesome_print

and it says one gem installed, documentation installed, etc.

Then, while I am in that project, I went to my Rails console to try it out, but when I did a require "awesome_print" as their help file says, I get a "cannot load such file".

Has anyone got this to work?

4

6 回答 6

26

像这样将它添加到您的 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 文件中可能包含的其他内容,这可能会导致其他副作用,例如弄乱您的提示。为了避免这些,只需将这两行添加到该文件的最后。

于 2013-04-26T13:08:22.463 回答
25

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

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

$ 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
于 2013-02-22T06:04:29.703 回答
6

安装它:

$ gem install awesome_print

如果需要,请将其包含在 GemFile 中:

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

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

require 'awesome_print'
AwesomePrint.irb!

重新启动你的外壳!

只是一个说明:我这样做了,但它没有立即工作,可能需要重新启动计算机......或者我只需要关闭所有 shell 选项卡并再次打开终端!

于 2013-10-28T00:52:17.130 回答
4

在你的机器上安装 gem

gem install awesome_print

获取已安装的路径

gem which awesome_print

将以下配置添加到您的~/.irbrc~/.pryrc. 每当您触发IRBpry会话时,这将加载 Awesome Print。

*记住$LOAD_PATH将保存您输入的任何内容gem which awesome_print

# ~/.irbc and ~/.pryrc

$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!
于 2019-10-23T15:03:29.150 回答
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。

于 2016-05-11T20:48:54.313 回答
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做一些事情来解决问题,但我很不耐烦。:-)

于 2020-12-21T08:18:34.667 回答