awesome_print看起来像一个非常好的宝石,所以我想尝试一下。
我参加了我的一个项目并做了:
gem install awesome_print
它说安装了一个gem,安装了文档等等。
然后,当我在那个项目中时,我去了我的Rails控制台尝试一下,但当我按照他们的帮助文件说require "awesome_print"
时,我得到一个“无法加载这样的文件”。< / p>
有人有这个工作吗?
答案 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
gem 'awesome_print', :require => 'ap'
require 'awesome_print'
AwesomePrint.irb!
只是一个注释:我做了这个并且它没有立即工作,可能需要重新启动计算机...或者我只需要关闭所有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 console
和pry
)
$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