2010-09-11 49 views
0

我在rails中使用Haml,並使用:markdown過濾器(bluecloth gem)寫入,但一段代碼示例在ruby中,並且頁面嘗試執行#{values},我怎樣才能阻止它?Haml Markdown過濾器在Rails中破壞示例Ruby代碼

這裏是代碼的破位:

undefined local variable or method `f' 

我已經找到了解決自己卻離理想是遠:

- f=nil;count=nil;like_frags=[];word=nil; 

:markdown 
    like_frags = [fields].flatten.map { |f| "LOWER(#{f}) LIKE :word#{count}" } 
    or_frags << "(#{like_frags.join(" OR ")})" 
    binds["word#{count}".to_sym] = "%#{word.to_s.downcase}%" 
    count += 1 
    end 

返回的錯誤

我把它放在:markdown過濾器開始之前。

我知道它可以做到這一點,因爲當我寫這個時,stackoverflow沒有中斷,所以我怎麼能實現呢?

在此先感謝!

回答

2

根據Haml文檔,過濾器內插是正常的和預期的。爲了克服它,你可以只是前面加上一個反斜槓逃脫#{}插語法:

:markdown 
    like_frags = [fields].flatten.map { |f| "LOWER(\#{f}) LIKE :word\#{count}" } 
    or_frags << "(\#{like_frags.join(" OR ")})" 
    binds["word\#{count}".to_sym] = "%\#{word.to_s.downcase}%" 
    count += 1 
    end 
+0

哈,我試圖逃避他們,但愚蠢使用正斜槓,而不是反斜槓的!謝謝你的幫助! – 2010-09-12 19:39:35