Ruby on rails 使用具有继承资源的演示者

Ruby on rails 使用具有继承资源的演示者,ruby-on-rails,inherited-resources,presenter,Ruby On Rails,Inherited Resources,Presenter,我在Rails应用程序中经常使用优秀的继承资源gem,但每当我想使用presenter时,我就会转而手工编写控制器 有没有一个好的、干净的解决方案可以将继承的资源与Draper或delegate_presenter之类的东西结合起来?这里是delegate_presenter的作者 delegate\u presenter应该可以很好地处理继承的资源。现在我还没有在项目中实际使用继承的资源,所以很多都是从自述文件中获得的 无论如何,我总是要在视图中创建presenter对象:todo\u pre

我在Rails应用程序中经常使用优秀的继承资源gem,但每当我想使用presenter时,我就会转而手工编写控制器


有没有一个好的、干净的解决方案可以将继承的资源与Draper或delegate_presenter之类的东西结合起来?

这里是
delegate_presenter
的作者

delegate\u presenter
应该可以很好地处理继承的资源。现在我还没有在项目中实际使用继承的资源,所以很多都是从自述文件中获得的

无论如何,我总是要在视图中创建presenter对象:
todo\u present=present(@todo)

如果您拥有来自公共来源的模板(例如
LegalTodo
Todo
的子类,原因未知),并且您共享模板,您可以在模板中执行以下操作:

presenter=Present(资源)

resource
——至少根据继承的资源自述——是当前资源的助手(因此,
@todo
,或
@legal\u todo

Present()
将查看对象的类并实例化相应的presenter对象
TodoPresenter
if
resource
返回一个
Todo
对象,
LegalTodoPresenter
if
resource
返回一个
LegalTodo
对象

然后,假设这些演示者是多态的,演示者将允许您将差异提取出来(“一个
LegalTodo
的名称是描述+沉积编号,但是
Todo
项目的名称应该是描述”)——即使您共享视图