rails升级到2.3.8后遇到的兼容性问题及解决方法
先祝贺下。我们的viila3.0要开始动土了。
但是给我们当头一棒的是我们的rails升级到2.3.8后就遇到了兼容性问题。
DEPRECATION WARNING: ActionView::SafeBuffer is deprecated! Use ActiveSupport::SafeBuffer instead. (called from local_constants at /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/module/introspection.rb:74)
大概的意识是说,我们采用了新版本,在原有的版本中有的方法在新版本中不在被支持了。要求我们更换新的方法。
解决方法:
找到项目中的fckediter.rb文件
include ActionView
module ActionView::Helpers::AssetTagHelper
alias_method :rails_javascript_include_tag, :javascript_include_tag
<= javascript_include_tag :defaults, :fckeditor >
def javascript_include_tag(*sources)
main_sources, application_source = [], []
if sources.include?(:fckeditor)
sources.delete(:fckeditor)
sources.push('fckeditor/fckeditor')
end
unless sources.empty?
main_sources = rails_javascript_include_tag(*sources).split("\n")
application_source = main_sources.pop if main_sources.last.include?('application.js')
end
[main_sources.join("\n"), application_source].join("\n")
end
end
找到以上的代码,全部注释掉
然后去更改你的layout中的引入fckeditor的部分。
把<= javascript_include_tag :fckeditor > 替换成 <= javascript_include_tag 'fckeditor/fckeditor' >
问题解决