2013-05-04 18 views
7

Czy istnieje sposób, aby napisać oświadczenie sprawy w Slim dla następującego przykładu. Zrobiłem kilka zmian na pytanie StackOverflow: How to write a switch statement in RubyOświadczenie Case w Slim

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 

Próbowałem następujących ale generuje błąd.

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

To, co mi powiedziano

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

Odpowiedz

9

= jest używany, gdy chcemy, aby uczynić coś, gdy chcesz wywołać pewną logikę rubinowy bez renderowania coś w widoku należy użyć -:

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

Nie jestem pewien, czy rozwiąże to twój problem, czy rozważałeś przeniesienie tej logiki do dekoratora?

+0

Nie jestem pewien, co to jest dekorator, ani nie znalazłem w sieci żadnego Slim Designera, czy możesz mi dać wskazówkę. Po prostu jestem ciekawa. Spróbuję i jeśli to zadziała, przyjmiemy jako odpowiedź. Dzięki za wspaniałą pomoc! –

+0

Świetnie to działało! Ale czy byłbyś na tyle uprzejmy powiedzieć mi, czym jest "dekorator"? –

+2

Dekorator jest po prostu innym sposobem wyodrębniania logiki z widoków, aby utrzymać je w czystości, jeśli chcesz zacząć z nich korzystać proponuję spojrzeć na klejnot draper https://github.com/drapergem/draper. Gdzieś jest też stacja kolejowa, żeby poznać podstawy. :) –

Powiązane problemy