ruby Rails Presenters文件夹的用途是什么?

xhv8bpkk  于 2022-11-04  发布在  Ruby
关注(0)|答案(3)|浏览(146)

Rails Presenters文件夹的用途是什么?
这个文件夹里有什么?
为什么需要此文件夹?

whhtz7ly

whhtz7ly1#

presenters是一种设计模式,通常被称为模型视图呈现器(MVP)
这是模型视图控制器模式的派生,用于创建用户界面。
这对于关注点分离非常有用,可以使代码更干。
维基百科是这样描述它的

模型-定义要在用户界面中显示或以其他方式操作的数据的界面。
presenter-作用于模型和视图。它从存储库(模型)中检索数据,并将其格式化以在视图中显示。
视图-一个被动界面,显示数据(模型)并将用户命令(事件)路由到演示者,以根据该数据进行操作。

https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter

Ruby on Rails中的演示者

Presenter是位于模型和视图之间的简单类,它提供了一种很好的、面向对象的DRY方式来处理复杂的显示逻辑。
在Rails中,约定是将它们放在app/presenters文件夹中
下面是一篇有用的文章,解释了该模式及其在Ruby on Rails中的使用。
https://kpumuk.info/ruby-on-rails/simplifying-your-ruby-on-rails-code/

igsr9ssn

igsr9ssn2#

演示者文件夹是演示者代码所在的位置。我知道,很明显,我会解释的。
我认为Presenter和Decorator是模型的抽象,以便在数据属性被提供给视图之前对其进行处理。
如果你熟悉helper,那么Presenter就像helper一样,他们为视图准备一些数据,除了helper通常作为所述视图的实用程序方法,而Presenter更多的是呈现实际的属性。
这个链接很好地解释了其中的区别:https://awead.github.io/2016/03/08/presenters/
希望能有所帮助。

0sgqnhkj

0sgqnhkj3#

演示者整理您的视图

当人们在Rails上下文中提到Presenters时(与模型-视图-Presenter、MVC、MVVM等讨论相对),他们指的是在您的视图中事情看起来非常复杂的情况:到处都有大量的if语句,很难全部阅读。
或者采用一个日常的比喻:想象一下你有一个非常凌乱的房子,东西堆得到处都是,很难走进去。你可以把演讲者想象成一个大车库,在那里你可以整齐地整理一切。这使得你在房子里走起来容易得多,而且你仍然有你需要的所有用具。
回到Rails环境:Presenter允许您在其他地方删除所有复杂的逻辑:到Presenter的文件夹中,这样当您阅读视图时,从更高的层次上更容易理解视图。没有杂乱,也没有复杂:如果你想了解更多的细节,你必须转到相关的文件夹。逻辑不需要包含在一个名为“Presenters”的文件夹中,但可以按照约定放在那里。

相关问题