2011-01-07 66 views
0

我正在将旧的Rails 1.x应用程序升级到2.3.10,并且我遇到了渲染视图的问题。我有一个控制器有两个与之相关的视图:index.hamlindex.rxml。在升级之前,一切都按预期工作。在移动到Rails 2之后,相同的代码(没有更改)已经开始在wants.html块的末尾自动呈现XML视图,当它应该呈现haml视图时。当我将index.rxml文件重命名为其他内容(如foo.rxml)时,它会成功找到并呈现index.haml文件。Rails升级:rxml文件被渲染而不是haml文件

视图渲染逻辑从Rails 1到Rails 2的变化是什么造成了这种情况?

回答

3

我没有使用过Rails 1(跳入Rails 2),但我想这是因为Rails 2使用.html.erb而不是.rhtml。 .xml.erb代替.rxml也一样。同样的事情发生在HAML上:.haml变成.html.haml。不知道这是否是导致问题的原因,但它是Rails 2创建视图的方式。

编辑

另外,如果你想渲染XML在梁2,您需要添加以下到您的控制器:

respond_to do |format| 
    format.xml { render :xml_view_name } 
end 
+0

重命名的看法固定它。我使用了rake任务[here](http://thelucid.com/2007/05/16/rails-edge-getting-your-view-extensions-ready-for-edge/)。 – jrdioko 2011-01-12 01:15:53