开发模式下的内部服务器错误(500),rails中没有调试页面或日志输出:utf-8

时间:2012-11-08 16:48:53

标签: ruby-on-rails utf-8 ruby-1.9

开发模式下的rails app会产生内部服务器错误,而不是带有跟踪的常见错误页面。 log/development.log中也没有信息。无论什么服务器。在任何要求。

有什么问题?

1 个答案:

答案 0 :(得分:2)

ruby​​ 1.9下由无效字符编码引起的语法错误。当ruby(和rails)在源文件中默认使用ASCII时,很可能你使用了utf-8。 (是的,对吗?)

解决方案是使用BOM http://www.w3.org/International/questions/qa-byte-order-mark或put

# encoding: UTF-8

# coding: UTF-8

在utf-8中的文件之上。

要全局设置UTF-8,您可以输入

config.encoding = "utf-8"
config/application.rb

等同于

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8

反过来相当于put:

# encoding: UTF-8

或每个文件顶部的BOM​​。

这允许在rails应用程序的所有文件上全局使用utf-8。

如果要在所有ruby文件上使用全局选项,可以使用-E-K ruby​​选项并通过RUBYOPT环境变量进行设置,如:

export RUBYOPT=-Ku

export RUBYOPT='-E utf-8:utf-8'

http://www.manpagez.com/man/1/ruby/http://zargony.com/2009/07/24/ruby-1-9-and-file-encodings

还有一个gem在Rails项目中需要它的每个文件上设置魔术注释:h ttps://github.com/m-ryan/magic_encoding