我安装了capistrano后,Rails应用程序无法加载

时间:2013-02-16 02:52:21

标签: ruby-on-rails-3.2 capistrano bundle rvm-capistrano

我正试图在vexxhost上首次部署我的rails应用程序。我正在使用github作为我的源代码管理和capistrano。

这是我的部署文件

require 'bundler/capistrano'
require 'capistrano'
require 'bundler'
require 'capistrano-vexxhost'

# Account Settings

ssh_options[:forward_agent] = true
set :scm_command, "/home/user/opt/bin/git"
set :local_scm_command,"git"
set :user, "xxxxxxxx"
set :password, "xxxxxxxxx"
set :domain, "domain.com"
set :mount_path,"/home/xxxxxxxx/xxxxxxx"
set :application,"app name"
set :scm, :git
set :deploy_via, :copy
set :repository, "git@github.com:xxxxx/xxxxxxx.git"
default_run_options[:pty] = true

当我安装gem'capistrano'gem'capistrano-vexxhost'时,我尝试在我的笔记本电脑上本地加载我的应用程序时出现以下错误(它在安装capistrano之前工作)。

 C:/Ruby193/lib/ruby/gems/1.9.1/gems/capistrano-2.14.1/lib/capistrano/configuration/loading.rb:18:in `instance': Please require this file from within a Capistrano recipe (LoadError) 
  from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/capistrano.rb:7:in `<top (required)>'
    from C:/Users/mummy/LagoAds/config/application.rb:6:in `require'
    from C:/Users/mummy/LagoAds/config/application.rb:6:in `<top (required)>'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/commands.rb:53:in `require'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/commands.rb:53:in `block in <top (required)>'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/commands.rb:50:in `tap'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/commands.rb:50:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

注意但是,当我在application.rb文件中的以下代码中评论Bundler.require行时,它成功运行但无法识别宝石

 if defined?(Bundler)
 # If you precompile assets before deploying to production, use this line
 Bundler.require(*Rails.groups(:assets => %w(development test)))
 # If you want your assets lazily compiled in production, use this line
 # Bundler.require(:default, :assets, Rails.env)
 end

更新

当我输入以下代码“rake --trace”时,它也会给我以下错误

 rake aborted!
 please require the file from withen a capistrano recipe

请我帮忙解决这个问题

1 个答案:

答案 0 :(得分:15)

如果您将capistrano*个宝石放入Gemfile,您需要禁用自动要求:

gem 'capistrano-vexxhost', :require => false