Ruby on rails RubyonRails中使用同一控制器的不同视图

Ruby on rails RubyonRails中使用同一控制器的不同视图,ruby-on-rails,inheritance,code-reuse,sti,Ruby On Rails,Inheritance,Code Reuse,Sti,在我的Rails应用程序中,我有一个STI,其中我的超类是Order,另外两个子类(Payment和Subscription)继承自Order。这两个子类只是使用特定的值、不同的视图但相同的控制器方法初始化某些订单的属性 在这种情况下,最大化代码重用的最佳方法是什么?现在我在重复控制器和一些视图代码 如何将同一控制器(OrdersController)用于增强型模型?您可以在任何控制器中使用任何模型,因此没有什么可以阻止您在orders控制器中执行类似于@payments=Payment.all

在我的Rails应用程序中,我有一个STI,其中我的超类是Order,另外两个子类(Payment和Subscription)继承自Order。这两个子类只是使用特定的值、不同的视图但相同的控制器方法初始化某些订单的属性

在这种情况下,最大化代码重用的最佳方法是什么?现在我在重复控制器和一些视图代码


如何将同一控制器(OrdersController)用于增强型模型?

您可以在任何控制器中使用任何模型,因此没有什么可以阻止您在orders控制器中执行类似于
@payments=Payment.all
的操作,然后在视图中使用
@payments
。如果你给我一个代码示例,我可能会详细说明一下。我知道我可以做
@payments=Payment.all
,但最好有
@resource=resource.all
这样的东西,其中resource是调用控制器的特定类(订阅或付款),因此,请执行正确的重定向/呈现视图…啊,我明白了,为什么不随url一起发送一个参数来决定将使用哪种资源?类似于url末尾的
?resource=payment
,您可以使用
参数[:resource]=“payment”
进行检查,并使用条件来确定您将使用什么资源/呈现什么视图?