`
liuqiang
  • 浏览: 161941 次
  • 性别: 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应用中添加标签系统变得简单高效,它提供了灵活的接口来管理和操作标签数据。 首先,让我们深入...

    Rails 101 入门电子书

    - 测试安装: 创建一个简单的Rails应用来验证是否成功安装。 #### 五、练习作业0-Hello World - **目标**: - 学习如何创建第一个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 的活跃社区和丰富的文档资源也保证了其持续的更新和...

    Rails101_by_rails4.0

    Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它遵循模型-视图-控制器(MVC)的架构模式,设计用来快速开发数据库驱动的动态网页。随着Rails版本的更新迭代,此书聚焦于一个特定的版本,帮助...

    Rails 101S

    - **创建项目**:使用`rails new`命令创建一个新的Rails项目。 - **配置Git**:设置版本控制系统,确保代码变更能够被追踪记录。 - **使用Bootstrap进行前端设计**:介绍如何使用Bootstrap框架来快速搭建美观的...

    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 ...

    rails2-sample

    这里还会涉及如何创建第一个Rails项目,以及如何运行服务器以查看项目。对于新手来说,这一步骤是至关重要的,因为它将奠定后续学习的基础。 #### 3. Introducing Ruby(介绍Ruby) Ruby是一种动态、面向对象的...

    Rails3常用命令行命令

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

Global site tag (gtag.js) - Google Analytics