【问题标题】:Rails upgrade: rxml file rendered instead of haml fileRails 升级:渲染 rxml 文件而不是 haml 文件
【发布时间】:2011-06-05 12:02:33
【问题描述】:
我正在将旧的 Rails 1.x 应用升级到 2.3.10,但在渲染视图时遇到了问题。我有一个控制器,它有两个与之关联的视图:index.haml 和index.rxml。在升级之前,一切都按预期工作。在迁移到 Rails 2 之后,相同的代码(没有更改)已经开始在 wants.html 块的末尾自动呈现 XML 视图,此时它应该呈现 haml 视图。当我将index.rxml 文件重命名为其他名称(如foo.rxml)时,它会成功找到并呈现index.haml 文件。
从 Rails 1 到 Rails 2 的视图渲染逻辑发生了哪些变化?
【问题讨论】:
标签:
ruby-on-rails
view
rendering
upgrade
haml
【解决方案1】:
我没有使用过 Rails 1(加入 Rails 2),但我猜这是因为 Rails 2 使用 .html.erb 而不是 .rhtml。同样适用于 .xml.erb 而不是 .rxml。 HAML 也发生了同样的事情:.haml 变为 .html.haml。不知道这是否是导致您的问题的原因,但这是 Rails 2 创建视图的方式。
编辑
另外,如果你想在 Rails 2 中渲染 XML,你需要在你的 Controller 中添加以下内容:
respond_to do |format|
format.xml { render :xml_view_name }
end
【讨论】:
-
重命名视图修复了它。我使用了 rake 任务here。