Ruby on rails rails为什么需要其他项目包gem?

Ruby on rails rails为什么需要其他项目包gem?,ruby-on-rails,ruby,ruby-on-rails-3,gem,bundler,Ruby On Rails,Ruby,Ruby On Rails 3,Gem,Bundler,我有两个项目,一个叫做AwithRails另一个叫做B纯Rubycode 当我调用名为do\u action的A控制器操作时,它将调用Brake任务,例如rake dosomething 但我有一个错误: rake aborted! cannot load such file -- pry gempry位于Bgem文件中 我想知道为什么rails项目A需要Bgem文件 我想我的linux环境问题?thk由于您从特定(第一个)项目调用了rake dosomething,因此环境gems将从第一个

我有两个项目,一个叫做
A
with
Rails
另一个叫做
B
Ruby
code

当我调用名为
do\u action
A
控制器操作时,它将调用
B
rake任务,例如
rake dosomething

但我有一个错误:

rake aborted!
cannot load such file -- pry
gem
pry
位于
B
gem文件中

我想知道为什么rails项目
A
需要
B
gem文件


我想我的linux环境问题?thk

由于您从特定(第一个)项目调用了
rake dosomething
,因此环境gems将从第一个项目应用。因此,要么:

  • 将pry gem依赖项添加到第一个项目中

  • 生成纯ruby中的第二个项目作为gem,并将其作为依赖项添加到Rails项目的Gemfile,如下所示:

    gem 'your_ruby_project_gem', :path => 'path/to/your/ruby/gem/project'
    
    bundle exec rails s
    
    该方法适用于当前正在开发的项目,即参数
    :path
    允许您更改该路径下的代码,因此您也将在不重新安装的情况下更改gem。请参阅更多。要运行Rails项目,必须按如下方式执行:

    gem 'your_ruby_project_gem', :path => 'path/to/your/ruby/gem/project'
    
    bundle exec rails s
    

  • 我更喜欢第二种方法。

    在application.rb中添加require“pry”在require“rails”之后是的,我可以这样做。它将使项目
    变得更大,所以我认为有最好的方法来完成它。答案有用吗?project
    B
    不仅仅是纯ruby代码。这是一个ruby项目,它会经常更改。我不想进入gem。有什么办法吗?@liooo是的,建议的第二种方法是用于正在开发的项目,即参数
    :path
    允许您更改path下的代码,因此您的“gem”也将在不重新安装的情况下更改:请阅读此处: