Rails模板条件

时间:2011-02-26 21:53:51

标签: php ruby-on-rails ruby-on-rails-3

在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 个答案:

答案 0 :(得分:1)

模板代码的直接翻译如下所示:

<% 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() are here的文档。