Rails-从我的角度来看计算?

绿野仙踪

当前,我正在视图中执行一些计算,这当然是一件坏事:

<% categories.each do |c| %>
  ....
    <%= c.transactions.sum("amount_cents") %>
  ....
<% end %>

我正在研究可以帮助我重构上述问题的方法。

一件事是将计算移至我的控制器

@category_sum = @transaction.sum("amount_cents")

这可能是一个更好的解决方案,但您知道。不完美。

由于我有很多用户,因此我看不到如何将计算器逻辑移到我的模型中。所以我想我可能需要使用一个新的Class,创建一堆方法(求和,平均值等)并在视图中使用它们?我在正确的轨道上吗?感谢您提供有关如何重组我的代码以及设计和实现此类的建议。

WHO

隔离视图逻辑的一种方法是使用演示者。

演示者可以让您执行以下操作:

<% categories.each do |c| %>
  ....
    <% present c do |category| %>
    <%= category.transaction_sum %>
    <% end %>
  ....
<% end %>

然后,您在中有一个演讲者班级app/presenters/category_presenter.rb

class CategoryPresenter < BasePresenter
  presents :category

  def transaction_sum
    category.transactions.sum("amount_cents")
  end
end

当然,如果演示者中有很多方法,最好使用它(但是一旦您开始减少视图逻辑,就可以很快地填充演示者)。

这里使用的实现依赖于此prorailscast中描述的内容基本思想只是拥有一个#present帮助程序,帮助程序根据对象类推断类名,加载并初始化适当的presenter类。

另一种流行的替代方法是使用drapper,它使用装饰器的概念,但是演示者基本上是装饰器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从外部世界的角度来看,我的家用计算机的IP地址是什么?

来自分类Dev

从Rails应用程序的角度来看,group和group_by的混合形式是什么?

来自分类Dev

角度来看,增加范围违反了我的指令

来自分类Dev

Rails上的角度模板

来自分类Dev

从计算机体系结构的角度来看如何执行应用程序

来自分类Dev

从计算机体系结构的角度来看如何执行应用程序

来自分类Dev

Rails访问计算字段

来自分类Dev

Ruby on Rails计算

来自分类Dev

Rails 计算逻辑

来自分类Dev

从Webservice的角度来看AngularJS或BackboneJS

来自分类Dev

从角度来看,如何测试我的指令中正在调用的作用域函数?

来自分类Dev

从某个特定的角度来看,我该如何验证不再有与模拟的互动?

来自分类Dev

从程序员的角度来看,我该如何解决Ramanujan的嵌套根问题?

来自分类Dev

从某个特定的角度来看,我该如何验证不再有与模拟的互动?

来自分类Dev

从安全角度来看,我是否应该将用户添加到sudoers文件中?

来自分类Dev

Rails角度咖啡脚本错误

来自分类Dev

Rails:自我加入

来自分类Dev

Rails和Ruby日期计算

来自分类Dev

计算Rails的总小时数

来自分类Dev

Rails:如何计算每天的总价

来自分类Dev

从客户端实现的角度来看,我可以将 Java Callable 与 Angular Observable (RxJS) 进行比较吗?

来自分类Dev

从软件的角度来看,精确中断是否重要?

来自分类Dev

角度来看,缺少什么依赖性

来自分类Dev

从软件的角度来看,精确中断是否重要?

来自分类Dev

从性能的角度来看,还有什么优势?

来自分类Dev

角度来看,观看对象中的特定键?

来自分类Dev

从Linux的角度来看,什么是Docker容器?

来自分类Dev

从 Java 的角度来看,这个“blabla”是什么?

来自分类Dev

我无法更新Rails表单

Related 相关文章

  1. 1

    从外部世界的角度来看,我的家用计算机的IP地址是什么?

  2. 2

    从Rails应用程序的角度来看,group和group_by的混合形式是什么?

  3. 3

    角度来看,增加范围违反了我的指令

  4. 4

    Rails上的角度模板

  5. 5

    从计算机体系结构的角度来看如何执行应用程序

  6. 6

    从计算机体系结构的角度来看如何执行应用程序

  7. 7

    Rails访问计算字段

  8. 8

    Ruby on Rails计算

  9. 9

    Rails 计算逻辑

  10. 10

    从Webservice的角度来看AngularJS或BackboneJS

  11. 11

    从角度来看,如何测试我的指令中正在调用的作用域函数?

  12. 12

    从某个特定的角度来看,我该如何验证不再有与模拟的互动?

  13. 13

    从程序员的角度来看,我该如何解决Ramanujan的嵌套根问题?

  14. 14

    从某个特定的角度来看,我该如何验证不再有与模拟的互动?

  15. 15

    从安全角度来看,我是否应该将用户添加到sudoers文件中?

  16. 16

    Rails角度咖啡脚本错误

  17. 17

    Rails:自我加入

  18. 18

    Rails和Ruby日期计算

  19. 19

    计算Rails的总小时数

  20. 20

    Rails:如何计算每天的总价

  21. 21

    从客户端实现的角度来看,我可以将 Java Callable 与 Angular Observable (RxJS) 进行比较吗?

  22. 22

    从软件的角度来看,精确中断是否重要?

  23. 23

    角度来看,缺少什么依赖性

  24. 24

    从软件的角度来看,精确中断是否重要?

  25. 25

    从性能的角度来看,还有什么优势?

  26. 26

    角度来看,观看对象中的特定键?

  27. 27

    从Linux的角度来看,什么是Docker容器?

  28. 28

    从 Java 的角度来看,这个“blabla”是什么?

  29. 29

    我无法更新Rails表单

热门标签

归档