2015-03-31 45 views
0

我在'vendor/bundler'中使用Gems。当我得到了编码错误,我固定它通过“config/initializer”添加一个名为“output_safty_encoding_patch.rb”文件:ActionView :: Template :: Error(未定义的方法'force_encoding'为零:NilClass):

output_safty_encoding_patch.rb

module ActiveSupport 
    class SafeBuffer < String 
    def concat(value) 
     if value.html_safe? 
     super(value.force_encoding('utf-8')) 
     else 
     super(ERB::Util.h(value.force_encoding('utf-8'))) 
     end 
    end 
    alias << concat 
    end 
end 

然后我用宝石‘设计’,并试图创建一个新帖子。 我得到这个错误。

::的ActionView ::模板错误(未定义的方法`force_encoding”的零:NilClass):

我的日志:

Processing by PostsController#new as HTML 
    Rendered posts/_form.html.slim (30.2ms) 
    Rendered posts/new.html.erb within layouts/application (36.8ms) 
Completed 500 Internal Server Error in 43ms 

ActionView::Template::Error (undefined method `force_encoding' for nil:NilClass): 
    1: = form_for(@post) do |f| 
    2: -if @post.errors.any? 
    3: #error_explanation 
    4:  h2= pluralize(@post.errors.count, "error") 
    config/initializers/output_safty_encoding_patch.rb:7:in `concat' 
    app/views/posts/_form.html.slim:1:in _app_views_posts__form_html_slim__2419859499811208315_70341230451880 
    app/views/posts/new.html.erb:4:in _app_views_posts_new_html_erb___3935161508588949089_70341230567660 

回答

0

你可能要重新考虑猴子补丁ActiveSupport :: Safebuffer(您在config/initializers/output_safty_encoding_patch.rb中获得的文件)。

更改核心类的行为必然会遇到难以调试的问题(如此类问题)。

也许你可以发布一个关于导致你到猴子补丁的问题的问题?

相关问题