Rails Presenters文件夹的用途是什么?这个文件夹里有什么?为什么需要此文件夹?
whhtz7ly1#
presenters是一种设计模式,通常被称为模型视图呈现器(MVP)这是模型视图控制器模式的派生,用于创建用户界面。这对于关注点分离非常有用,可以使代码更干。维基百科是这样描述它的
presenters
模型-定义要在用户界面中显示或以其他方式操作的数据的界面。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/
app/presenters
igsr9ssn2#
演示者文件夹是演示者代码所在的位置。我知道,很明显,我会解释的。我认为Presenter和Decorator是模型的抽象,以便在数据属性被提供给视图之前对其进行处理。如果你熟悉helper,那么Presenter就像helper一样,他们为视图准备一些数据,除了helper通常作为所述视图的实用程序方法,而Presenter更多的是呈现实际的属性。这个链接很好地解释了其中的区别:https://awead.github.io/2016/03/08/presenters/希望能有所帮助。
0sgqnhkj3#
当人们在Rails上下文中提到Presenters时(与模型-视图-Presenter、MVC、MVVM等讨论相对),他们指的是在您的视图中事情看起来非常复杂的情况:到处都有大量的if语句,很难全部阅读。或者采用一个日常的比喻:想象一下你有一个非常凌乱的房子,东西堆得到处都是,很难走进去。你可以把演讲者想象成一个大车库,在那里你可以整齐地整理一切。这使得你在房子里走起来容易得多,而且你仍然有你需要的所有用具。回到Rails环境:Presenter允许您在其他地方删除所有复杂的逻辑:到Presenter的文件夹中,这样当您阅读视图时,从更高的层次上更容易理解视图。没有杂乱,也没有复杂:如果你想了解更多的细节,你必须转到相关的文件夹。逻辑不需要包含在一个名为“Presenters”的文件夹中,但可以按照约定放在那里。
if
3条答案
按热度按时间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/
igsr9ssn2#
演示者文件夹是演示者代码所在的位置。我知道,很明显,我会解释的。
我认为Presenter和Decorator是模型的抽象,以便在数据属性被提供给视图之前对其进行处理。
如果你熟悉helper,那么Presenter就像helper一样,他们为视图准备一些数据,除了helper通常作为所述视图的实用程序方法,而Presenter更多的是呈现实际的属性。
这个链接很好地解释了其中的区别:https://awead.github.io/2016/03/08/presenters/
希望能有所帮助。
0sgqnhkj3#
演示者整理您的视图
当人们在Rails上下文中提到Presenters时(与模型-视图-Presenter、MVC、MVVM等讨论相对),他们指的是在您的视图中事情看起来非常复杂的情况:到处都有大量的
if
语句,很难全部阅读。或者采用一个日常的比喻:想象一下你有一个非常凌乱的房子,东西堆得到处都是,很难走进去。你可以把演讲者想象成一个大车库,在那里你可以整齐地整理一切。这使得你在房子里走起来容易得多,而且你仍然有你需要的所有用具。
回到Rails环境:Presenter允许您在其他地方删除所有复杂的逻辑:到Presenter的文件夹中,这样当您阅读视图时,从更高的层次上更容易理解视图。没有杂乱,也没有复杂:如果你想了解更多的细节,你必须转到相关的文件夹。逻辑不需要包含在一个名为“Presenters”的文件夹中,但可以按照约定放在那里。