Заявление о регистре в Slim

Есть ли способ написать оператор case в Slim для следующего примера. Я внес некоторые изменения в вопрос StackOverflow: Как написать оператор переключения в Рубин

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...

person Ziyan Junaideen    schedule 04.05.2013    source источник


Ответы (1)


= используется, когда вы хотите что-то отрендерить, когда вы хотите вызвать какую-то рубиновую логику без визуализации чего-либо в представлении, которое вы должны использовать -:

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

Я не уверен, что это решит вашу проблему, вы все равно думали о переносе этой логики в декоратор?

person Genís    schedule 04.05.2013
comment
Я не уверен, что такое декоратор, и я не нашел ни одного Slim Decorator в сети, не могли бы вы мне подсказать. Мне просто любопытно узнать. Я попробую, и если он сработает, приму в качестве ответа. Спасибо за большую помощь! - person Ziyan Junaideen; 04.05.2013
comment
Отлично, это сработало! Но не могли бы вы сказать мне, что такое decorator? - person Ziyan Junaideen; 04.05.2013
comment
Декоратор - это еще один способ извлечь логику из представлений, чтобы они оставались чистыми. Если вы хотите начать с ними, я предлагаю вам взглянуть на драгоценный камень драпировки github.com/drapergem/draper. Где-то есть железная дорога, где можно узнать основы. :) - person Genís; 04.05.2013