冒着被标记为“太宽泛”的风险,但这是一个真实的怀疑。
说我有@my_model.complex_calculation_result
在 View 中显示。
有什么优点和缺点:
1 - 计算 Controller 上的值并将其发送到 View
Controller :@result = @my_model.complex_calculation_result # caching the value in the controller
看法:<%= @result %>
2 - 直接在 View 中计算 <%= @my_model.complex_calculation_result %>
我知道最后一个选择代表更少的代码,并且我有一个更少的实例变量。
但是有性能差异吗?
猜一 - View 已经需要更多的内存来渲染它,所以如果内存昂贵,从 View 内部进行计算可能需要更长的时间。
对此的任何了解和评论都将受到高度赞赏。 :)
最佳答案
虽然我没有回答您问题的性能部分,但您在采用第二种方式时违反了 Rails MVC 原则。 View 并不意味着对模型数据执行任何(特别是复杂的)计算。
关于ruby-on-rails - 在 Controller 中的 View VS 中运行昂贵的方法 - Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47359115/