无法让awesome_print gem工作

15 ruby rubygems awesomeprint

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

我去了我的一个项目并做了:

gem install awesome_print
Run Code Online (Sandbox Code Playgroud)

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

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

有人有这个工作吗?

pla*_*rms 24

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

gem 'awesome_print', :require => 'ap'
Run Code Online (Sandbox Code Playgroud)

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

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

require "awesome_print"
AwesomePrint.irb!
Run Code Online (Sandbox Code Playgroud)

请注意,如果您使用此选项,则任何在其Gemfile中未安装awesome_print的项目都会在您运行时引发此错误rails c:

cannot load such file -- awesome_print
Run Code Online (Sandbox Code Playgroud)

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


Ami*_*pta 22

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}}}
Run Code Online (Sandbox Code Playgroud)

如果您正在使用RVM,那么路径很可能就像

~/.rvm/rubies/ruby-x.x.x-pxxx@your_gemset_name/gems/awesome_print-x.x.x/lib
Run Code Online (Sandbox Code Playgroud)


Bri*_*nos 6

安装它:

$ gem install awesome_print
Run Code Online (Sandbox Code Playgroud)

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

gem 'awesome_print', :require => 'ap'
Run Code Online (Sandbox Code Playgroud)

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

require 'awesome_print'
AwesomePrint.irb!
Run Code Online (Sandbox Code Playgroud)

重启你的shell!

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


Rut*_*ins 5

在你的机器上安装 gem

gem install awesome_print
Run Code Online (Sandbox Code Playgroud)

获取已安装的路径

gem which awesome_print
Run Code Online (Sandbox Code Playgroud)

将以下配置添加到您的~/.irbrc~/.pryrc~/.rdbgrc. IRB每当您触发一个或一个会话时,这都会加载 Awesome Print pry

*记住$LOAD_PATH将保存您从打字中获得的任何内容gem which awesome_print

编辑:添加; nil到该$LOAD_PATH行将防止每次执行文件时打印出其内容。

# ~/.irbc or ~/.pryrc or ~/.rdbgrc

$LOAD_PATH << "~/.asdf/installs/ruby/2.6.3/lib/ruby/gems/2.6.0/gems/awesome_print-1.8.0/lib/"; nil
require "awesome_print"
AwesomePrint.irb!
Run Code Online (Sandbox Code Playgroud)