【问题标题】:Whats the rails way of handling many-to-many?处理多对多的rails方式是什么?
【发布时间】:2011-03-26 16:12:19
【问题描述】:

好的,所以我有一个照片模型和处理照片的控制器。我有两个其他模型餐厅和菜,我希望能够让照片模型处理照片。所以我创建了照片模型,它作为对菜肴或餐厅数据库表的多态引用。我应该使用餐厅控制器来处理上传餐厅照片并为菜肴控制器处理上传照片,还是应该使用照片控制器来处理两者的上传?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      使用此方案,您可以将照片视为餐厅和菜肴记录的一些复杂属性。所以我可能会在处理餐厅和菜肴的其他属性的地方上传照片。在 RESTful 方案中,这将发生在restaurants_controller 和dishs_controller 中的新/编辑操作中。像CarrierWave 这样的好插件可以极大地帮助整个文件上传过程。

      【讨论】:

      • 将它放在新/编辑操作中的唯一麻烦是我希望用户能够上传多张照片,而不仅仅是每道菜/餐厅一张。我应该只创建一个名为也许新照片/编辑照片的新操作吗?
      • 您可以使用 ajax 来拥有一个“更智能”的表单,允许您在一个视图中添加多张图片。您还可以查看thisrailscast 了解有关制作复杂表单的一些想法。
      猜你喜欢
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 2016-05-26
      • 2011-06-27
      相关资源
      最近更新 更多