有几个人对此提出了相当类似的问题,所以我很抱歉重复“旧问题”,但我完全陷入了困境。我会尽可能清楚地说明问题是什么:
我有一个适用于本地的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应与应用程序一起使用
有任何想法/建议吗?