对不起,长标题:)。有一些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
答案 0 :(得分:0)
问题是我有
gem 'devise', :path => '~/Documents/Rails_Projects/deed/vendor/gems'
在我的Gemfile中,因为我想改变用户创建后Devise重定向的位置,所以我只是编辑了gem。删除Gemfile中的硬编码路径解决了这个问题,虽然我找不到一条可行的路径。
我应该在我的应用中覆盖那个Devise控制器,而不是在本地引用它然后编辑它吗?
答案 1 :(得分:0)
我应该在我的应用中覆盖那个Devise控制器,而不是在本地引用它然后编辑它吗?
是的,绝对的。查看Devise附带的生成器,特别是视图和控制器:http://rubydoc.info/github/plataformatec/devise/master/file/README.rdoc#Configuring_views。您需要创建一个users_controller并覆盖设备的功能。