ruby-on-rails – 在控制器的视图VS中运行昂贵的方法 – Rails

冒着被标记为“过于宽泛”的风险,但这是一个真实的疑问.

说我有
@ my_model.complex_calculation_result在视图中显示.

有哪些优点和缺点:

1 – 计算控制器上的值并将其发送到视图

控制器:

@result = @ my_model.complex_calculation_result#缓存控制器中的值

视图:

<%= @result%>

2 – 直接在视图中计算它

<%= @ my_model.complex_calculation_result%>

我知道最后一个替代代表更少的代码,我有一个更少的实例变量.

但是有性能差异吗?

猜测1 – 视图已经占用更多内存来渲染所有内容,因此如果内存昂贵,则从视图内部计算可能需要更长时间.

任何关于此的评论和评论都将受到高度赞赏. 🙂

最佳答案 虽然我没有回答你问题的性能部分,但是当你走第二条道路时,你正在打破Rails MVC原则. View不是要对Model数据执行任何(特别是复杂的)计算.

点赞