精华帖 (0) :: 良好帖 (1) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-27
最后修改:2009-03-27
环境:Ruby 1.9.1+Rails2.3.2+ActiveScaffold 1.2RC1,错误提示: Encoding::CompatibilityError
这个问题会有两种情况导致: 1、问题环境:模板中有<%="汉字"%>,且有UTF-8的字串变量,如I18n.t(:hello)返回的是UTF-8串。 问题所在:Ruby 1.9.1的ERB处理编码的方式,看代码erb.rb
def compile(s) .....
这样,s的编码是"ASCII-8BIT",模板就是ASCII-8BIT编码,当有UTF-8的字串变量concat时,出错。 解决方案:在 enc = detect_magic_comment(s) || enc 后添加一行 s.force_encoding(enc) 2、问题环境:数据库返回UTF-8的数据时,ActiveScaffold的列表以及查看出错。 问题所在:ActiveRecord返回的数据,编码成了ASCII-8BIT,看代码list_column_helps.rb, def format_value(column_value, options = {}) 我查到这里返回的值就是ASCII-8BIT编码了。查了下,从mysql_adapater出来的数据就是ASCII-8BIT的。 解决方案:大家给点建议吧,SET NAME无效、database.yml的encoding无效。我最后是修改mysql_adapter
def select(sql, name = nil)
#以下为新加部分
if @config[:encoding] && @config[:encoding]=="utf8" 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-27
activescaffold的支持也是非常差的
bug也是长年类月没改进的 我觉得不要把这些支持都很差的一起用吧。 好痛苦的 |
|
返回顶楼 | |
发表时间:2009-03-27
Scaffold的话还是不要用了,没看到有什么特别的地方
|
|
返回顶楼 | |
发表时间:2009-05-04
我用rails 2.3.2 + ruby1.8.6,错误提示,貌似是rails版本问题,请问是怎么解决的:
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/module/aliasing.rb:33:in `alias_method': undefined method `find_full_template_path' for class `ActionView::Base' (NameError) from c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/module/aliasing.rb:33:in `alias_method_chain' from D:/ruby example/RailsApplication2/vendor/plugins/active_scaffold/lib/extensions/generic_view_paths.rb:33 from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require' from c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:521:in `new_constants_in' from c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require' from D:/ruby example/RailsApplication2/vendor/plugins/active_scaffold/environment.rb:63 ... 25 levels... from c:/ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:84 from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' |
|
返回顶楼 | |
发表时间:2009-05-06
hehe ,不升级不就完了,客户要的是稳定的系统。
|
|
返回顶楼 | |
发表时间:2009-05-06
除了activescaffold还有比较好用的插件吗?
|
|
返回顶楼 | |
发表时间:2009-05-27
楼主,这篇文章是翻译的吧?我是了一下,两条都没有效果。两个问题都没解决
|
|
返回顶楼 | |
发表时间:2009-05-28
看吧,果然一堆麻烦。XD
未来如果ruby再把String改成Unicode String,肯定会再出一堆麻烦。 |
|
返回顶楼 | |
发表时间:2009-12-08
也碰到这个问题了, 问题是 mysql 2.8.1的GEM 好像有问题,只能返回 ascii-8bit
确实前面的一些 方法不能工作, 只有改动 mysql-adaptor 比较简单。但是这个方案是不是影响数据库的读取效率? 国外有人改了 mysql.c ,需要重新编译,在windows上不好弄。 真希望有人能更新下 mysql的GEM,这个问题谁也绕不过去的。 |
|
返回顶楼 | |
浏览 5936 次