冒着被标记为“过于宽泛”的风险,但这是一个真实的疑问.
说我有
@ my_model.complex_calculation_result在视图中显示.
有哪些优点和缺点:
1 – 计算控制器上的值并将其发送到视图
控制器:
@result = @ my_model.complex_calculation_result#缓存控制器中的值
视图:
<%= @result%>
2 – 直接在视图中计算它
<%= @ my_model.complex_calculation_result%>
我知道最后一个替代代表更少的代码,我有一个更少的实例变量.
但是有性能差异吗?
猜测1 – 视图已经占用更多内存来渲染所有内容,因此如果内存昂贵,则从视图内部计算可能需要更长时间.
任何关于此的评论和评论都将受到高度赞赏. 🙂
最佳答案 虽然我没有回答你问题的性能部分,但是当你走第二条道路时,你正在打破Rails MVC原则. View不是要对Model数据执行任何(特别是复杂的)计算.