Простите за длинное название :). Имеются некоторые проблемы с Capistrano (хотя проблема может быть связана с упаковщиком). Попытка развернуть приложение Rails 3 в Linode (Ubuntu 10.04 LTS). Я думал, что это может быть проблема с RVM, но у меня все еще проблема без использования RVM на сервере.

Вот ошибка, которую я получаю, когда запускаю 'cap deploy: update' (настройка и проверка работают нормально)

  * executing "bundle install --gemfile /home/deploy/rails_apps/deed/releases/20101220040406/Gemfile --path /home/deploy/rails_apps/deed/shared/bundle --deployment --quiet --without development test"
    servers: ["myserver"]
    [myserver] executing command
 ** [out :: myserver] The path `/home/deploy/Documents/Rails_Projects/deed/vendor/gems` does not exist.
    command finished

Вот мой deploy.rb

require 'bundler/capistrano'

set :domain, "mydomain"

set :application, "deed"
set :repository,  "deploy@#{domain}:~/deed.git"

set :scm, :git

# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`
set :user, "deploy"
set :deploy_to, "/home/deploy/rails_apps/#{application}"
role :web, domain                          # Your HTTP server, Apache/etc
role :app, domain                          # This may be the same as your `Web` server
role :db,  domain, :primary => true # This is where Rails migrations will run

# If you are using Passenger mod_rails uncomment this:
# if you're still using the script/reapear helper you will need
# these http://github.com/rails/irs_process_scripts
default_run_options[:pty] = true  # Must be set for the password prompt from git to work

set :default_environment, { 
  'PATH' => "/opt/ruby-enterprise-1.8.7-2010.02/bin:$PATH",
  'RUBY_VERSION' => 'ruby 1.8.7',
  'GEM_HOME' => '/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/',
  'GEM_PATH' => '/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/',
  'BUNDLE_PATH' => '/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/'
}

namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end
end
2
kmurph79 20 Дек 2010 в 08:41

2 ответа

Лучший ответ

Должен ли я просто переопределить этот контроллер Devise в моем приложении, вместо того, чтобы ссылаться на него локально, а затем редактировать его?

Да, конечно. Посмотрите на генераторы, которые поставляются с Devise, особенно для представлений и контроллеров: http://rubydoc.info/github/plataformatec/devise/master/file/README.rdoc#Configuring_views. Вы захотите создать users_controller и переопределить в нем функциональность devise.

0
cdmwebs 20 Дек 2010 в 13:54

Проблема была в том, что у меня

gem 'devise', :path => '~/Documents/Rails_Projects/deed/vendor/gems'

В моем Gemfile, так как я хотел изменить место перенаправления Devise после создания пользователя, поэтому я просто отредактировал гем. Удаление жестко запрограммированного пути в Gemfile решило проблему, хотя я не смог найти путь, который бы сработал.

Должен ли я просто переопределить этот контроллер Devise в моем приложении, вместо того, чтобы ссылаться на него локально, а затем редактировать его?

0
kmurph79 20 Дек 2010 в 10:05