`
liuqiang
  • 浏览: 159491 次
  • 性别: Icon_minigender_1
  • 来自: 华东
社区版块
存档分类
最新评论

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

    博客分类:
  • Ruby
阅读更多
   早些时候做过了一个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")等等
分享到:
评论
2 楼 rainux 2008-08-05  
zzhxccw 写道
每个人的tag应该是不同的,@tags = XXX.tag_counts[0,20],不是把别人的tag标签也取出来了!


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

相关推荐

    ruby on rails在线考试系统

    2. 数据库集成:Rails默认使用ActiveRecord,这是一个ORM(对象关系映射)库,允许开发者用Ruby代码操作数据库,无需编写SQL。在这个在线考试系统中,数据库可能包含试题、答案、考生信息、考试记录等表。 3. ...

    基于Ruby On Rails的在线购书系统-毕业设计基于Struts+Hibernate的人力资源管理信息系统

    【标题】中的“基于Ruby On Rails的在线购书系统”是指使用Ruby编程语言以及Ruby on Rails框架开发的一个电子商务平台,特别关注在线书籍销售。Ruby on Rails(简称RoR)是Web应用开发的一个开源框架,它遵循MVC...

    Rails里给文件上传添加progress_bar

    为了添加进度条功能,我们需要引入一个前端库,如jQuery或React,并结合Ajax进行异步上传。这里我们假设使用jQuery,配合jQuery File Upload插件,它提供了一个简单的API来处理文件上传和进度事件。 1. **安装...

    rails敏捷开发的购物车系统

    在本文中,我们将深入探讨如何使用Rails敏捷开发技术构建一个购物车系统,特别是在参考《rails敏捷开发第四版》中的示例。Rails 3.2.6是本文的基础框架,它是一个强大的Ruby Web应用程序框架,以其MVC(模型-视图-...

    Ruby-Acl9一个Rails基于角色的授权系统

    Ruby-Acl9是一个在Rails框架下广泛使用的基于角色的访问控制库,它为开发者提供了强大的权限管理和授权功能。这个库的出现使得在Rails应用中实现复杂的权限控制变得更加简单和直观。Acl9的设计理念是通过定义角色...

    Ruby-ActsAsTaggableOnRails应用程序标签插件允许自定义标签在动态环境中

    Ruby-ActsAsTaggableOn 是一个非常流行的Rails插件,用于在动态环境中实现自定义标签功能。这个插件使得在你的Rails应用中添加标签系统变得简单高效,它提供了灵活的接口来管理和操作标签数据。 首先,让我们深入...

    免费Ubuntu系统ruby on rails安装【保姆级教程】

    Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 ...

    rails2.3.2

    标题 "rails2.3.2" 指的是 Ruby on Rails 框架的一个特定版本,即 2.3.2。Ruby on Rails(通常简称为 Rails)是一个基于 Ruby 语言的开源 Web 应用程序框架,它遵循 Model-View-Controller (MVC) 设计模式,用于构建...

    Rails项目源代码

    这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何利用Rails的强大功能来创建一个允许用户上传、分享和浏览图片的应用。 1. **Rails框架基础**: Rails的核心理念是DRY(Don't...

    基于Rails的菲普斯网站管理系统 v0.8.5.rar

    软件介绍 Fepss(菲普斯)第一个推出在线为企业提供不限用户...本网站系统是作为OA系统的前端展示系统,所倚赖的包都在plugin目录,其中还提供了一个基于ferret的全文检索功能,需要通过 gem install ferret 方式安装。

    Rails

    标题 "Rails" 指的是 Ruby on Rails,一个开源的Web应用程序框架,它基于Ruby编程语言,遵循MVC(模型-视图-控制器)架构模式。Rails由David Heinemeier Hansson在2004年创建,其设计理念是强调代码的简洁性、DRY...

    使用Aptana+Rails开发Rails Web应用(中文)

    本教程将详细介绍如何使用Aptana与Rails结合,创建一个功能完备的Web应用程序。 首先,我们需要安装Aptana Studio。你可以从其官方网站下载最新版本的安装包。安装过程中,遵循提示进行,确保选择自定义安装并勾选...

    关于rails 3.1 cucumber-rails 1.2.0

    首先,Rails 3.1是Ruby on Rails框架的一个版本,它在2011年发布。这个版本引入了一些显著的改进,如Asset Pipeline(资产管道)和CoffeeScript支持。Asset Pipeline允许开发者更有效地管理和优化应用程序的前端资源...

    rails 15 分钟博客

    "Rails 15分钟博客"是一份教程,旨在引导初学者在15分钟内快速搭建一个基本的博客系统,体验Rails的强大与高效。 首先,让我们了解一下Rails的核心概念: 1. MVC架构:Rails中的MVC代表模型(Model)、视图(View...

    Ruby-RailsAdmin一个Rails引擎提供了一个易于使用的界面来管理您的数据

    只需将RailsAdmin 引擎添加到Gemfile中,运行`bundle install`,然后根据官方文档进行简单的配置,就可以快速构建起一个功能完备的管理界面。同时,RailsAdmin 的活跃社区和丰富的文档资源也保证了其持续的更新和...

    Ruby-GoOnRails使用Rails生成器来生成一个Golang应用

    使用`GoOnRails`生成器,可以轻松地在Rails项目中添加一个新的Go应用: ```bash rails generate go_on_rails:app my_go_app ``` 这将在Rails项目的`lib/my_go_app`目录下创建一个新的Go应用结构。 ### 4. 集成Go ...

    Rails3常用命令行命令

    Rails3 是 Ruby on Rails 框架的一个版本,它提供了一系列强大的命令行工具,使得开发者可以快速地构建和管理Web应用。在本文中,我们将深入探讨Rails3中的常用命令,帮助你更高效地进行开发工作。 首先,新建一个...

    ruby on rails学生选课系统

    本文将深入探讨如何使用Ruby on Rails框架来开发这样一个系统。 Ruby on Rails(简称Rails)是一款基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用的开发过程,...

    Ruby-一个Rails引擎提供工作流程的基本基础设施

    在Rails引擎中使用Workflow Nets,开发者可以构建一个灵活且可扩展的工作流程管理系统。这个引擎可能包含以下组件: 1. **模型层**:定义工作流程的状态和转换规则。在Ruby中,可以使用元编程技术来定义状态机,...

    Ruby-DocumentationRails引擎提供文档添加到Rails应用程序的功能

    Rails引擎是Rails框架的一个重要组成部分,它允许开发者创建可重用的、自包含的组件,这些组件可以插入到其他Rails应用中,提供特定的功能。 "Documentation - Rails引擎提供文档添加到Rails应用程序的功能"这一...

Global site tag (gtag.js) - Google Analytics