2013-05-04 7 views
7

在下面的示例中,是否有方法在Slim中編寫case語句?我做對的StackOverflow問題的一些變化:How to write a switch statement in RubySlim中的案例陳述

case a 
when 1..5 
    = "It's between 1 and 5" 
when 6 
    = "It's 6" 
when String 
    = "You passed a string" 
else 
    = "You gave me #{a} -- I have no idea what to do with that." 
end 

我嘗試以下,但產生一個錯誤。

= case @taxon.name 
    = when "Wedding Cakes" 
    div.taxon-descripiton Wedding Cake Description 

這就是我告訴

... syntax error, unexpected tIVAR, expecting keyword_when 
; @output_buffer.safe_concat(("<when>\"Weddin... 

回答

9

=使用時要呈現的東西,當你要調用一些紅寶石邏輯,而在一個視圖中呈現什麼,你應該使用-

- case @taxon.name  
    - when "Wedding Cakes"  
     div.taxon-descripiton Wedding Cake Description 

我不知道這會解決你的問題,但你有沒有考慮過把這個邏輯轉移到裝飾器呢?

+0

我不確定裝修工是什麼,我也沒有在網上找到任何修身裝飾,你能給我一個提示。我只是好奇而已。我會嘗試一下,如果有效,接受作爲答案。感謝您的幫助! – 2013-05-04 17:24:10

+0

太棒了!但你是否會善意地告訴我「裝飾者」是什麼? – 2013-05-04 17:29:19

+2

裝飾器只是另一種從視圖中提取邏輯以保持它們乾淨的方式,如果你想開始使用它們,我建議你看看draper gem https://github.com/drapergem/draper。有一個軌道視頻可以學習基礎知識。 :) – 2013-05-04 19:07:39