早些时候做过了一个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")等等
评论
rainux 2008-08-05   回复
zzhxccw 写道
每个人的tag应该是不同的,@tags = XXX.tag_counts[0,20],不是把别人的tag标签也取出来了!


这只不过是你们的需求不一样而已。
zzhxccw 2008-08-05   回复
每个人的tag应该是不同的,@tags = XXX.tag_counts[0,20],不是把别人的tag标签也取出来了!
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

liuqiang
搜索本博客
我的相册
019a9cee-eeda-3878-b2be-d193caa0130f-thumb
A569194995207YAN
共 16 张
存档
最新评论