我是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 />
答案 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_s
将uniquediff
变为字符串,如果("+" 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 %>