升级到Rails 3.1.0后,带有atom_feed的ActionView :: Template :: Error错误的参数数量1为0

问题描述

我刚刚将Rails应用程序从3.0.7版本升级到了候选发布版本3.1.0,我的原子供稿生成器中出现一个奇怪的错误
ActionView::Template::Error (wrong number of arguments (1 for 0)):
1: atom_Feed do |Feed|
2:   Feed.title(\"site name\")
3:  
4:   for post in @posts
app/views/posts/index.atom.builder:1:in `_app_views_posts_index_atom_builder___1517323884_2197638100\'
似乎在
atom_Feed
方法中需要一个参数,但我尝试在其中添加一些内容,但尚未解决问题。在升级之前它可以正常工作。     

解决方法

Builder 3.0与ruby 1.8.7上的fast_xs 0.8.0不兼容,并且会出现此错误。也许您已经安装了? (还请注意,Hpricot捆绑了fast_xs 0.8.0) (编辑:)您可以通过将其拖放到配置目录中来对其进行修补:
class String
  def fast_xs_absorb_args(*args); fast_xs; end
  alias_method :to_xs,:fast_xs_absorb_args
end