2009-09-14 54 views
2

我收到了在雪豹全新安裝上設置的Ruby on Rails。在經歷了(和beating)MySQL和Sphinx問題之後,我陷入了與HAML相關的愚蠢錯誤。ActionView :: MissingTemplate與HAML

基本上,我得到一個使用HAML的每個視圖缺少模板錯誤。我可以添加一個空白的xxx.html.erb文件,並且(空白)頁面加載正常。但xxx.html.haml引發錯誤,即使該文件在相應的目錄中肯定存在。

這裏是開發服務器錯誤:

ActionView::MissingTemplate (Missing template sections/index.erb in view path app/views): 
    haml (2.2.4) rails/./lib/sass/plugin/rails.rb:19:in `process' 

我使用HAML寶石(2.2.4),軌寶石(2.3.4),和Ruby 1.8.7。我確實運行了haml --rails。來自我的RoR應用程序根目錄; init文件位於vendor/plugins/haml目錄中。我已經確認「通過IRB需要'haml'」=> true。

任何幫助,將不勝感激!

針對Yaraher:

嘗試非和重新安裝,這引起了除與rdocs(「找不到主網頁README.rdoc」)沒有錯誤。

在腳本/控制檯:

>> require 'haml' 
=> [] 

更新:

安裝舊版本的Rails知道在這個項目HAML工作似乎已經 「固定」 的問題。我仍然很好奇聽到這個問題的真實答案 - 我不想被困在2.3.2。

sudo gem install -v 2.3.2 rails 

更新2:

這肯定是由線路2.3.2和2.3.4之間的差異引起的。安裝了這兩個gem後,我可以設置在我的environment.rb文件中使用哪個。 HAML在2.3.2下正常工作,並按2.3.4所述進行休息。

+0

你有沒有試過重新安裝它?你有沒有試過通過腳本/控制檯要求它? – Yaraher 2009-09-14 23:38:38

+0

這似乎是重複http://stackoverflow.com/questions/1150339/rails-2-3-2-trying-to-render-erb-instead-of-haml – 2009-09-15 01:04:10

+0

我不能再現此.. 。我嘗試用一​​個控制器和一個Haml視圖創建一個裸露的Rails 2.3.4應用程序,並且它工作正常。你介意在失敗的應用程序中創建一個tarball,並將它發送給我[email protected]?這聽起來像是我想壓扁的Haml錯誤。 – 2009-09-15 20:49:19

回答

1

時間尷尬回答這個問題:

之間存在的Rails 2.3.2和2.3的區別。 4,它不會將xxx.haml.html文件識別爲應該由HAML(或ERB)解析的文件;這在2.3.2中運行良好。 HAML文件應該始終命名爲xxx.html.haml anwyay,所以這甚至不是一個錯誤。

我沒有意識到這是問題所在,因爲我在新鮮的Snow Leopard安裝中打開了「隱藏文件擴展名」選項(默認情況下打開)。所以當我試圖通過Finder將文件擴展名切換到html.haml來測試它時,它實際上已將其更改爲haml.html.haml或一些廢話。

故事的道德:我跑了下面的腳本,現在HAML和Rails 2.3.4一起工作。

path = '/path_to_rails_app/views/' 
dir = Dir.new(path) 
dir.each do |d| 
    if File.directory?(path+d) 
    Dir.new(path+d).each do |f| 
     if (f =~ /.*\.haml\.html$/) != nil 
     File.rename(path+d+'/'+f, path+d+'/'+f.gsub('haml.html', 'html.haml')) 
     end 
    end 
    end 
end 
0

嘗試將模板重新命名爲

sections/_index.haml 

sections/__index.haml 
+0

不起作用。這不是僅僅將模板標記爲偏色嗎? – 2009-09-15 19:13:46

+0

作爲魅力! – ujifgc 2011-09-05 13:42:02

相關問題