Rails博客和帖子链接

时间:2012-11-10 22:54:41

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

我有一个类似于博客的rails应用程序,我使用标记系统对帖子进行分类。

我需要添加一些与“相关帖子”功能类似的帖子。

因此,例如,如果帖子1与帖子4相关,则在帖子1的节目动作结束时,我想要渲染帖子4的图像,同时在帖子4的结尾处显示帖子1的图像

我的想法是创建一个与帖子模型有HABTM关系的“链接”模型,但我不确定“帖子”是否有很多“链接”通过“链接”会更好。 这两个想法似乎都有相同的结果,所以我更喜欢哪种方法?

1 个答案:

答案 0 :(得分:1)

HABTM本质上非常简单,只有一个外键对加入模型表。

当您需要向该连接关系添加其他属性时,和/或当您需要将连接视为自己的模型时,通常使用has_many到。

例如,在您的情况下,您可能希望链接按照创建顺序显示。为此,您需要在关系上存储创建时间戳。为此,简单的HABTM连接表是不够的,因此您切换到has_many并创建Linking模型来封装连接。

要继续该示例,您还可以将Linking作为一流资源,并设置一个页面,您可以在其中单独编辑/添加/删除它们与链接Post

在大多数情况下,我个人总是使用has_many。它对我来说只是感觉更清洁(没有自动命名表魔法接受或覆盖,并且链接更加明显),我发现很多时候,加入关系确实值得成为一等公民。