在 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 中为我的开发和生产环境设置不同的 api 密钥?