2013-05-04 18 views
7

C'è un modo per scrivere un'istruzione case in Slim per il seguente esempio. Ho fatto alcune modifiche per la questione StackOverflow: How to write a switch statement in RubyDichiarazione di caso in 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 

Ho provato quanto segue ma genera un errore.

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

Questo è quello che mi viene detto

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

risposta

9

= viene utilizzato quando si vuole rendere qualcosa, quando si desidera chiamare una logica rubino senza rendere nulla in vista si dovrebbe usare -:

Non sono sicuro che questo risolva il problema, hai considerato di spostare questa logica in un decoratore?

+0

Non sono sicuro di cosa sia un decoratore, né ho trovato alcun decoratore sottile nel web, potresti darmi un suggerimento. Sono solo curioso di sapere. Lo proverò e se funziona accetta come risposta. Grazie per l'aiuto! –

+0

Ottimo ha funzionato! Ma saresti così gentile da dirmi che cosa è "decoratore"? –

+2

Un decoratore è solo un altro modo per estrarre la logica dalle viste per tenerle pulite, se si desidera iniziare con esse suggerisco di dare un'occhiata alla gemma di draper https://github.com/drapergem/draper. C'è un binario da qualche parte per imparare le basi pure. :) –

Problemi correlati