什么是处理多对多的轨道方式?

时间:2011-03-26 16:12:19

标签: ruby-on-rails ruby polymorphic-associations

好的,所以我有一个照片模型和控制器处理照片..我有两个其他模型餐厅和菜,我希望能够照片模型处理照片。所以我创建了照片模型,作为菜肴或餐馆数据库表的多态参考。我是否应该使用餐厅控制器来处理上传餐厅照片以及相同的碟形控制器,还是应该使用照片控制器来处理上传的照片?

2 个答案:

答案 0 :(得分:1)

使用多态类的唯一原因是它们的业务(或其他)逻辑非常相同,唯一的区别是它们的数据结构(它也有类似的部分)。因此,您应该使用带有单个控制器的多态模型,或者将单独的类(模型)与单独的控制器一起使用。

当然,您可以为您的多态模型使用单独的控制器,但这是我认为的最佳实践

答案 1 :(得分:0)

通过这种方案,您可以将照片视为餐厅和菜肴记录的某些复杂属性。因此,我可能会在处理餐馆和餐具的其他属性的同一地方上传照片。在RESTful方案中,这将发生在restaurants_controller和dishes_controller中的new / edit操作中。使用像CarrierWave这样的好插件可以大大帮助整个文件上传过程。