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

Posted

技术标签:

【中文标题】在 Ruby on Rails 中为帖子添加标签【英文标题】:Adding tags to posts in Ruby on Rails 【发布时间】:2011-01-04 05:48:06 【问题描述】:

我正在使用 Scaffolding 在 Rails 中创建博客。我想在每个帖子上添加一个“标签”字段,比如在 *** 和 WordPress 上。我可以使用字符串类型(rails generate scaffold post title:string body:text tags:string)然后用逗号分隔,但这不是一个好习惯,因为我希望读者按标签(例如 /tags/web20/tags/lol )浏览。我该怎么做?

【问题讨论】:

我认为你必须制作类似脚手架标签 tagname:string 每个帖子可以有多个标签,每个标签可以有多个帖子。我还没有这样做,但我也有兴趣这样做! 【参考方案1】:

标记是如此普遍,以至于实现成为一种商品。我相信"acts as taggable on" 通常是实现标签的首选方式。

查看其他流行的解决方案here。

如果你想自己实现它,你可以深入到源代码中找到一些想法。

【讨论】:

【参考方案2】:

我建议创建一个标签模型并使用has_and_belongs_to_many 为帖子分配标签。我不知道脚手架功能是否会帮助您为此创建一个表单,但自己添加它应该不难。我还建议使用 formtastic 插件,因为它可以更轻松、更好地创建表单。

【讨论】:

【参考方案3】:

呃,通常的方式?添加 Tag 实体,在您的 Post 实体中添加 has_many :tags。然后迁移。就这些了。

【讨论】:

我这样做并迁移了。我对 has_many 和 belongs_to 还很陌生。你能解释一下我如何在我的控制器和视图中实现它吗?谢谢!

以上是关于在 Ruby on Rails 中为帖子添加标签的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails - 如何为同一操作添加第二条路线?

使用 Ruby on Rails 一键删除所有未批准的帖子

如何在 Ruby on Rails 中为我的开发和生产环境设置不同的 api 密钥?

保存到数据库帖子,但在检查 Ruby on Rails 中的 http 请求之前

Ruby on Rails 中的社交媒体共享按钮

在 ruby​​ on rails 3 中通过电子邮件创建订阅