2010-03-09 76 views
0

我只想將haml文件轉換爲erb。這樣做後,我得到一個未定義的方法`render_sequence_nav'錯誤消息 。即使在haml格式中沒有發生這樣的錯誤。在HAML文件中,有這樣一行:未定義的方法錯誤出現在erb但不是haml

#fields << render_sequence_nav(sequence_info, students_path) 
    fields << render(:partial => "resources_partials/sequence/nav", :locals => sequence_info.merge({:cancel_url => {:controller => :dashboard}})) 

    = render_form { fields } 

如果我刪除#fields#,它會在HAML返回未定義的方法render_sequence_nav。顯然這是必要的。但是,我不能在erb中重新創建它。如果我添加散列,它將灰線:

<% #fields << render_sequence_nav(sequence_info, 
    students_path) %> 
    <% fields << render(:partial => 
"resources_partials/sequence/nav", :locals => 
sequence_info.merge({:cancel_url => {:controller => :dashboard}})) %> 
    <%= render_form { fields } %> 
    <% end %> 

有關如何解決此問題的任何想法?謝謝。

回答

0

您的問題有點令人困惑,因爲您聲明在使用Haml進行視圖時沒有發生錯誤,但在第二段中,如果您取消註釋fields行,則會使用Haml編寫錯誤。

Rails正在尋找名爲render_sequence_nav的視圖幫助器方法。這應該位於app/helpers/application_helper.rb或輔助者對應於該視圖的控制器。

+0

那麼在haml文件中,#也表示註釋? #fields << render_sequence_nav(sequence_info,students_path) 我不確定那個#是否註釋掉了,是一個id選擇符還是其他的指示。 – JohnMerlino 2010-03-09 18:02:55

+0

你會碰巧知道爲什麼這給了一個未定義的方法在erb中的聯接錯誤,而不是在haml中: \t \t <%fields << render(:partial =>「resources_partials/sequence/nav」,:locals => sequence_info.merge ({:cancel_url => {:controller =>:dashboard}}))%> – JohnMerlino 2010-03-09 18:10:14

+0

對不起,在Haml中#表示元素的ID屬性。我不知道你的新問題的答案。 – 2010-03-09 18:22:46