10分钟给一个rails遗留系统添加标签功能

早些时候做过了一个rails系统,当时没有涉及到标签的功能,最近客户看到很多网站有标签功能,并认为一个web2.0网站没有标签怎么可以,于是提出要给群组、文章等等加上标签的功能,开始感觉蛮麻烦的,我岂不是要修改很多东西?我最初的设想是给每个用到标签的表加个tag字段,标签作为以逗号隔开的字符串形式存进去,取出来的时候再解析,可是按标签搜索的话岂不是巨麻烦?转念一想这个方法实在是憨,这时我发现了acts_as_taggable_on_steroids这个插件,它是根据acts_as_taggable重写的,试用了一下,非常不错,10分钟足以帮我解决标签问题,完全可以放心大胆的使用,特向大家推荐一下,以下是我简单的使用过程:

1 安装,ruby script/plugin install http://svn.viney.net.nz/things/rails/plugins/acts_as_taggable_on_steroids

2 给系统额外添2个表:tags和taggings,tags字段包括id、name,taggings字段包括id、tag_id、taggable_id、taggable_type、created_at。

3 在需要标签功能的model中定义:acts_as_taggable

4 添加标签,@xxx.tag_list = params[:tags],前端的tag用逗号隔开

4 显示标签, @tags = XXX.tag_counts[0,20],取出tag对象

5 按标签查询相关列表,@xxx = XXX.find_tagged_with(params[:name],:conditions=>相关额外的条件)

6 基本功能到此就搞定了,还有许多额外的功能,如Tag.counts:标签数量,删除标签:xxx.tag_list.remove("xxx")等等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值