在Ruby on Rails中为帖子添加标签

15

我正在使用Scaffolding在Rails中创建一个博客。我想像StackOverflow和WordPress一样在每篇文章上添加一个“标签”字段。我可以使用string类型(rails generate scaffold post title:string body:text tags:string)并用逗号分隔,但这不是好的做法,因为我希望读者通过标签浏览(例如/tags/web20/tags/lol)。我该怎么做?


我认为你需要做类似于 scaffold tag tagname:string 的东西。每篇文章可以有多个标签,每个标签也可以对应多篇文章。虽然我还没有实现过这个功能,但我也很感兴趣! - Newbie
3个回答

21

标记非常常见,实现已成为商品。我相信"acts as taggable on"通常是实现标签的首选方式。

在这里可以看到其他流行的解决方案

如果您希望自己实现,可以深入源代码找到一些想法。


1
我建议创建一个标签模型,并使用has_and_belongs_to_many将标签分配给帖子。我不知道脚手架功能是否能帮助您创建该表单,但自己添加应该不难。我还建议使用formtastic插件,因为它更容易、更美观地创建表单。

0

哦,通常的方法?添加标签实体,在您的帖子实体中添加has_many:tags。然后迁移。就这样。


1
我已经完成了这个迁移。我对 has_many 和 belongs_to 不是很熟悉。你能否向我解释一下如何在我的控制器和视图中实现它?谢谢! - user142019

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接