Rails 3将Haml文件呈现为Html

时间:2010-07-01 09:30:46

标签: ruby-on-rails rubygems ruby-on-rails-3 haml

按照http://github.com/fortuity/rails3-mongoid-devise的指南,我设法用Haml,Devise和Mongoid设置Rails3。 (作为附注,该指南非常详细;建议阅读新的Rails用户!)

唯一的问题是我无法让Rails渲染我的Haml视图:

Started GET "/" for 127.0.0.1 at 2010-07-01 14:40:23 +0200
  Processing by HomeController#index as HTML
  MONGODB miabreto_development['users'].find({}, {})
Rendered home/index.html.haml within layouts/application (4.2ms)
Completed 200 OK in 21ms (Views: 21.0ms)

请注意,它不会返回丢失的模板错误,它只是将视图呈现为纯HTML。文件名遵循惯例:

app/views/home/index.html.haml

在Gemfile中我有:

# Bundle gems needed for Haml
gem 'haml', '3.0.13'
gem "rails3-generators", :group => :development

由于我是Rails的新手,我不确定执行路径是什么决定使用什么渲染器等等。有人可以建议我在设置中可能遗漏的内容或在哪里寻找错误吗? (这是Rails.3.beta4)

1 个答案:

答案 0 :(得分:2)

一些事情

首先,rails会在index.html.erb中呈现它,如果它存在于views文件夹中。它会在呈现index.html.haml之前执行此操作。所以,看看你的views文件夹,如果你有一个名为index.html.erb的文件,那么只需删除它,rails应该开始为你做haml

其次,即使它确实呈现了你的文件的haml版本,它仍然会显示“由HomeController #index处理为HTML”

希望这会有所帮助,是的,这是一个很棒的教程,几天前自己阅读

PS - 两种判断模板是否正在执行haml的方法

  1. 将“hello from haml”添加到haml文件中
  2. 查看输出服务器输出,您应该看到以下内容:

    在布局/应用程序中呈现home / index.html.haml(42.9ms)