有几个人提出了与此相当相似的问题,所以我很抱歉重复“老问题”,但我完全陷入了困境。我会尽量说明问题是什么:
我有一个可以在本地运行的 Rails 应用程序。
我正在使用 capistrano 尝试将其部署在 ubuntu EC2 实例上。
在解决了以前的问题之后,我在运行
“cap deploy”命令时遇到了这个问题(我删除了 ec2 服务器名称):
executing "cd -- /u/apps/tweet_app/releases/20130628110910 && bundle exec rake
RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
servers: ["ec2 server name"]
[ec2 server name] executing command
[out :: ec2 server name] rake aborted!
[out :: ec2 server name]
/u/apps/twitter_app/releases/20130628110910/config/routes.rb:8: syntax error, unexpected ':', expecting kEND
** [out :: ec2 server name] resources :sessions, only: [:new, :create, :destroy]
** [out :: ec2 server name] ^
** [out :: ec2 server name]
/u/apps/tweet_app/releases/20130628110910/config/routes.rb:9: syntax error, unexpected ':', expecting kEND
** [out :: ec2 server name] resources :annotations, only: [:create]
** [out :: ec2 server name] ^
** [ec2 server name]
etc...
以前,我的 config/initializers/session_store.rb 中有一个错误,这与 ruby 1.8.7 和 1.9.2 之间的差异问题有关。我能够通过更改哈希的语法来解决它。为了找到问题的根源,我尝试在 ubuntu 实例上安装 ruby 1.9.2(我也尝试过 1.9.3)。1.9.2 显然正在运行-
ubuntu@ip-address:~$ ruby --version
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
但是错误似乎仍然没有解决。感觉它仍在尝试使用 1.8.7,这会导致语法错误。我尝试过的其他事情包括
1. 使用 rvm 在 ubuntu 上安装 ruby 1.9.2(在标准安装无处可去之后)
2. 使用 .rvmrc 文件指定应用程序应使用 1.9.2
有什么想法/建议吗?