Условия шаблона Rails - PullRequest
       6

Условия шаблона Rails

1 голос
/ 27 февраля 2011

В PHP я делал шаблонные преобразования с таким кодом:

<?php if($item['taste'] > 0):?>taste_plus<?php elseif($item['taste'] == 0):?>taste_zero<?php else:?>taste_minus<?php endif;?>

И я делал форматирование чисел с <?php echo number_format($item['taste'], 2)?> для извлечения их в формат "2,00".

Как сделатькак в шаблонах Rails?

1 Ответ

1 голос
/ 27 февраля 2011

Прямой перевод кода вашего шаблона будет выглядеть примерно так:

<% if @item.taste > 0 %>taste_plus<% elsif @item.taste == 0 %>taste_zero<% else %>taste_minus<% end %>

В этом примере я сделал код более объектно-ориентированным и использовал переменную-член @item, которая более похожа на Ruby / Rails, вместо использования массива PHP для передачи переменных в шаблон HTML. *

Однако вместо того, чтобы использовать этот прямой перевод, разработчик Rails, скорее всего, попытается уменьшить необходимость иметь так много логики в шаблоне, создав вспомогательную функцию, подобную этой:

def taste_helper(taste)
  if taste > 0
    taste_plus
  elsif taste == 0
    taste_zero
  else
    taste_minus
  end 
end

... Чтобы она могла вставить это в свой шаблон:

<%= taste_helper(@item.taste) %>

Для форматирования чисел в вашем шаблоне вы можете использовать функцию Rails number_with_precision, например:

number_with_precision(2, :precision => 2)

Приведенная выше функция форматирования выдаст «2,00». Документы для number_with_precision () здесь .

...