2010-07-01 134 views
1

按照指南http://github.com/fortuity/rails3-mongoid-devise,我设法使用Haml,Devise和Mongoid来设置Rails3。 (作为一个侧面说明,导游是真的细致;推荐阅读新的Rails用户!)Rails 3将Haml文件渲染为Html

唯一的问题是我不能让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)

+0

有你安装haml gem后“运行haml --rails/path/to/app”? – bjg 2010-07-01 09:38:07

+0

bjg,这与rails3不需要。 pithyless,你是否运行'bundle install'? – igorw 2010-07-01 10:17:32

+0

Ran'bundle install'并重新启动服务器多次。 – pithyless 2010-07-01 11:44:18

回答

2

几件事情

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

其次,即使它确实呈现哈姆版本两种方式告诉我们,如果 - 你的文件,它仍然会“由HomeController的#指数为HTML处理”

希望这有助于和是的,这是一个伟大的教程,读它自己前几天

PS阅读你的模板正在做haml

  1. 将“hello from haml”添加到您HAML文件
  2. 看看输出服务器输出,你应该看到沿东西线:

    内布局/应用index.html.haml渲染家庭/(42.9ms)

+0

感谢您提供丰富的回复! 1.目录中只有index.html.haml 2.这很好理解。 (我用更多的输出更新了问题代码) – pithyless 2010-07-01 12:48:20

+0

*头对桌*我已经计算出有问题的用户错误。问题实际上是与我的代码冲突的app/views/layouts/application.html.erb。感谢stephemurdoch帮助我找出问题:-) – pithyless 2010-07-01 12:51:05