2010-07-01 178 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