在我的本地开发环境中成功测试了我的“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中正确指定它吗?
答案 0 :(得分:2)
如果您查看dives_controller.rb的lines 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显示•非中断空格和◃尾随空格。