Rails 3部署到Heroku语法错误,意外的$ end

时间:2012-05-08 02:31:47

标签: ruby-on-rails ruby-on-rails-3 deployment heroku syntax-error

在我的本地开发环境中成功测试了我的“alpha”Rails 3应用程序后,我将其推送到Heroku(Cedar)进行实时测试。推送成功,但应用程序在启动时崩溃并出现以下错误:

: => Booting WEBrick
: => Ctrl-C to shutdown server  
: /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require':   /app/app/controllers/dives_controller.rb:50: invalid multibyte char (US-ASCII) (SyntaxError)
: /app/app/controllers/dives_controller.rb:50: syntax error, unexpected $end
: Exiting

我检查过意外字符和缺少结束语句,但似乎找不到任何字符。我没有使用任何多语言角色(据我所知)。

以下是我的一些文件,包括:Gemfile,Gemfile.lock,database.yml,dives_controller.rb https://gist.github.com/2632041

这可能与使用postgres有关,而不是在我的database.yml中正确指定它吗?

3 个答案:

答案 0 :(得分:2)

如果您查看dives_controller.rblines 50 and 51,您会注意到之前出现的一些奇怪的空白字符(它们在github输出中突出显示)。我感觉那些是造成问题的角色。

错误地按下键盘上的一些随机键可能会突然出现。只需删除它们并将其替换为space

答案 1 :(得分:0)

我不确定为什么会这样,但我删除了dives_controller.rb中的以下行,现在应用程序正确部署了:

#@user = User.where(:facebook_id => current_user.identifier) 
#@dive = @user.dives.create(params[:dive])
#@dive = Dive.new(params[:dive])

答案 2 :(得分:0)

Gist文件中以红色突出显示的空格为non-breaking spaces。对开发者来说是一场噩梦 您可以要求IDE或文本编辑器以不同的字符显示它们。

例如,set listchars=trail:◃,nbsp:•告诉VIM显示•非中断空格和◃尾随空格