【发布时间】:2011-01-30 19:37:47
【问题描述】:
我正在尝试在我的 rails 项目中使用 RedCloth gem。当我使用 irb 时,我可以加载 gem:
require 'rubygems'
require 'RedCloth'
它工作正常,但是当我在 rails 控制台中尝试相同的操作时,我收到一条错误消息,指出找不到 gem。
有人知道是什么原因造成的吗?
【问题讨论】:
标签: ruby-on-rails ruby gem
我正在尝试在我的 rails 项目中使用 RedCloth gem。当我使用 irb 时,我可以加载 gem:
require 'rubygems'
require 'RedCloth'
它工作正常,但是当我在 rails 控制台中尝试相同的操作时,我收到一条错误消息,指出找不到 gem。
有人知道是什么原因造成的吗?
【问题讨论】:
标签: ruby-on-rails ruby gem
您可以将 gem 路径附加到 ruby 加载路径。这样做:
gem which faker
=> /usr/local/ruby/......../faker-0.1.1/lib/faker.rb
启动 Rails 控制台并执行以下操作:
$: << '/usr/local/ruby/......../faker-0.1.1/lib/'
现在加载faker gem
require 'faker'
=> true
【讨论】:
rails console 内的 gemset/gem 目录中已经存在的任何 gem?
$: 表示 Rails 从 Gemfile 获取的加载路径。它与$LOAD_PATH 全局相同。因此,这种技术将我们想要的新路径作为其最后一个元素放入加载路径数组中。
require 'faker' 返回 false,require '/usr/local/ruby/......../faker-0.1.1/lib/' => true
您的 Rails 项目的 Gemfile 中是否包含 gem 'RedCloth'? Rails 只会加载该文件中指定的 gem。
【讨论】: