Rails邮件程序模板计算

时间:2012-01-10 03:47:37

标签: ruby-on-rails-3 templates view

我是rails的新手,正在撰写每日报告电子邮件模板。

我正在输出唯一身份访问者,并计算2之间的差异,并根据其是正面还是负面显示+和 - 符号。

有更好的方法吗?我不应该在视图中做数学吗?

Unique Visitors: <%= number_with_delimiter(@stats["unique_visitors"]) %>
<% uniquediff = @stats["unique_visitors"] - @stats["unique_visitors_yesterday"] %> 
(<% if uniquediff > 0 then %> + <% else %> - <% end %> <%= uniquediff %>)<br />

3 个答案:

答案 0 :(得分:1)

这个怎么样:

<% unique_diff = @stats['unique_visitors'] - @stats['unique_visitors_yesterday'] %>
<%= "Unique Visitors: #{number_with_delimiter(@stats['unique_visitors'])} #{'+' if unique_diff > 0}#{unique_diff}" %><br/>

答案 1 :(得分:1)

尝试:

("+" if uniquediff>=0)+uniquediff.to_s

.to_suniquediff变为字符串,如果("+" if uniquediff>=0)大于或等于零,"+"位的计算结果为uniquediff,否则..如果是负数,你已经有了"-"。 =]

答案 2 :(得分:1)

建议在HELPER中执行逻辑操作(这是助手应该做的事情)。

# In helper, eg. application_helper.rb
def unique_diff(stats)
  unique_diff = stats['unique_visitors'] - stats['unique_visitors_yesterday']
  (unique_diff > 0) ? "+#{unique_diff}" : "#{unique_diff}"
end

# In view
Unique Visitors Diff: <%= unique_diff @stat %>