【问题标题】:Rails Associations, habtm? Polymorphic? Both?Rails 协会,habtm?多态?两个都?
【发布时间】:2008-11-02 23:46:04
【问题描述】:

在我的 Rails 应用程序中,我有三个模型,项目、博客帖子和图像。项目和博客帖子可以有许多链接的图像,并且一个图像可以链接到一个项目、一个博客帖子或两者。

在 Rails 中建立关联以使其工作的最佳方式是什么?

【问题讨论】:

    标签: ruby-on-rails polymorphism has-and-belongs-to-many


    【解决方案1】:

    我会将 habtm 梳理成一个单独的模型类 ImageLink。然后你会得到:

    Project
      has_many :image_links, :as => :resource
    BlogPost
      has_many :image_links, :as => :resource
    ImageLink
      belongs_to :image
      belongs_to :resource, :polymorphic => true
    Image:
      has_many :image_links
    

    【讨论】:

    • 这并不是一个真正的“梳理”的 habtm,因为它确实与 habtm 相同(使用 ImageLink 作为 habtm 表),但这种方法的优点是您可以结合两个 habtm合而为一。
    • 谢谢,我也添加了 has_many :through 关联,在这个过程中发现这在图像方面不起作用,但在这种情况下,这并不重要,因为我只想要将图像链接到项目,而不是反过来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多