升级到 rails 3.2.0 后,rails server 后,显示
DEPRECATION WARNING: ActiveSupport::Memoizable is deprecated and will be removed in future releases,simply use Ruby memoization pattern instead. (called from <top (required)> at /var/workspace/yinse/config/application.rb:12)
google 了一下,没搞明白 Ruby memoization 是个啥东东, 请教同学们这个问题应该怎样解决?
application.rb 12 行的内容,对比了一下,和用 rails3.2.0 新建一个项目一样
Bundler.require(*Rails.groups(:assets => %w(development test)))
http://api.rubyonrails.org/ 你代码里没用到的话,这个没什么好解决的吧,下个版本移除 不知哪位,将 environments 里面的几个多余的空格删了,齐齐整整的 :)
ActiveSupport::Memoizable 应该是用来缓存方法结果的模块,源码见 activesupport/lib/active_support/memoizable.rb 这个文件。警告也是从这里出来的。
railties/guides/source/3_2_release_notes.textile 里有一句:
Deprecated ActiveSupport::Memoizable in favor of Ruby memoization pattern.
如果 lz 没有使用
extend ActiveSupport::Memoizable
的话,应该是某个 gem 里使用了 Memoizable,所以有了警告。
update on Jan 22th:
昨晚写错了。应该是 extend ActiveSupport::Memoizable 不是 include ActiveSupport::Memoizable
等待更新期间,实在很烦的话,权宜之计是可以通过在配置文件里加行
ActiveSupport::Deprecation.silenced = true
来解决
郁闷了 现在 运行 rake assets:precompile
来这个了
DEPRECATION WARNING: ActiveSupport::Memoizable is deprecated and will be removed in future releases,simply use Ruby memoization pattern instead. (called from at /home/wasai/projects/ruby-china/config/application.rb:13)