`

怎样写Rails插件

    博客分类:
  • RUBY
 
阅读更多
今天来看看怎样写Rails插件
首先我们生成插件框架:
Java代码 
ruby script\generate plugin active_record_search 

我们生成了一个名为active_record_search的插件,我们希望给每个Model添加一个search方法,用来在多个fields中search某一string
vendor/plugins/active_record_search/lib/active_record_search.rb:
Java代码 
# Adds a search method to query your ActiveRecord models 
module ActiveRecordSearch 
  # Query your ActiveRecord models. 
  # 
  #  Post.search 'foo', [:title, :summary] 
  #  => [#<Post>, #<Post>, #<Post>] 
  # 
  def search(query, fields, options = {}) 
    find :all, options.merge(:conditions => [[fields].flatten.map { |f| 
      "LOWER(#{f}) LIKE :query"}.join(' OR '), 
        {:query => "%#{query.to_s.downcase}%"}]) 
  end 
end 

这样就写好了library,我们再改写init.rb来加载该插件,因为init.rb是Rails程序初始化过程的最后一步要执行的程序
Java代码 
require 'active_record_search' 
ActiveRecord::Base.extend ActiveRecordSearch 
分享到:
评论

相关推荐

    Ruby on Rails插件

    Ruby on Rails插件是Rails框架的核心扩展机制,用于弥补Rails本身功能的不足,提供开发者所需的额外特性或功能。Rails插件允许开发人员自定义和增强Rails的任何部分,并且能够以封装和重用的方式与其他开发者共享。...

    [Rails 常用插件简介]CRUD Generator 2

    **Rails 常用插件简介 - CRUD Generator 2** 在Ruby on Rails框架中,开发过程中经常需要创建、读取、更新和删除(CRUD)数据。为了提高开发效率,开发者通常会使用各种插件来自动化这个过程。CRUD Generator 2就是...

    Rails插件收集

    标题“Rails插件收集”指的是关于Ruby on Rails框架的扩展插件资源的汇集。Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用的开发...

    rails 2.0.2 分页 需另外下载插件

    这个插件允许你在Rails应用中轻松地对数据进行分页显示,提高用户体验并减轻服务器压力。 **1. will_paginate插件介绍** `will_paginate`是Rails社区中非常流行的一个分页解决方案,它提供了简洁的API和强大的功能...

    Ruby-智付通金流的Rails插件

    Ruby-智付通金流的Rails插件是一个专门为Ruby on Rails框架设计的工具,它使得开发者能够轻松地将Spgateway这个台湾知名的在线支付服务集成到自己的应用中。这个插件简化了处理支付流程的复杂性,使得在Rails应用中...

    VIM的Rails编辑插件rails.vim.zip

    rails.vim提供了常用的一些命令,可以帮助开发,例如:Rgenerate, Rake, Rfind,RTview等,很方便,也很实用。 安装方法: 拷贝 autoload/rails.vim, plugin/rails.vim, 和 doc/rails.txt 到 ~/.vim 目录. ...

    关于Rails登录和验证插件http_authentication restful-authentication

    6. **Rakefile和init.rb**: Rakefile用于定义任务,如安装或更新插件,而init.rb是Rails初始化脚本,负责加载插件。 7. **版本控制(.svn)**: 这个文件可能表示插件曾使用Subversion作为版本控制系统。现代项目更...

    userstamp, 这个 Rails 插件扩展ActiveRecord.zip

    userstamp, 这个 Rails 插件扩展ActiveRecord Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta

    rails_amp, RailsAmp是( 加速移动页面)的Ruby on Rails 插件.zip

    rails_amp, RailsAmp是( 加速移动页面)的Ruby on Rails 插件 RailsAmp RailsAmp是一个 Ruby on Rails 插件,可以轻松构建( 加速移动页面) 视图。支持版本Rails 4.1,4.2,5.0安装在你的Gemfile中:gem 'rails_amp'

    oauth-plugin, 用于OAuth的Rails 插件.zip

    oauth-plugin, 用于OAuth的Rails 插件 OAuth插件这是在 Rails 应用程序中实现OAuth提供者和消费者的插件。我们支持修改后的OAuth 1.0规格:tools.ietf. org/html/rfc5849以及对 OAuth 2.0的支持:tools.iet

    eclipse的ruby on rails开发插件RadRails

    **Ruby on Rails 开发环境构建:Eclipse与RadRails 插件详解** 在现代软件开发领域,Ruby on Rails(简称Rails)作为一个强大的Web应用程序框架,因其简洁、高效的特性深受开发者喜爱。而Eclipse,作为一款功能强大...

    ruby on rails for eclipse开发插件

    ruby on rails for eclipse开发插件

    unity插件 Tracks and Rails.unitypackage 铁路轨道生成

    这个扩展允许您创建任何自定义形状的轨道,然后将一个购物车附加到它,并实际骑在轨道上。让平台在受到撞击时能滑动,地铁列车撞到障碍物,坏掉的电梯,过山车,看不见的飞行路线,火箭推进的火车等等!...

    facebooker, facebooker Rails 插件.zip

    facebooker, facebooker Rails 插件 Facebookerfacebooker.rubyforge.org描述:Facebooker是在 Facebook REST API 上的一个 ruby 包装器。 它的目标是:惯用 ruby在 ruby 标准库

    Rails的自动完成分页插件

    在这个场景中,我们关注的是Rails的自动完成、文件上传、分页以及上传进度管理相关的插件。让我们详细了解一下这些关键知识点: 1. **Rails 自动完成**: 自动完成是一种功能,允许用户在输入框中键入时提供预填...

    rails2-sample

    本章节将介绍如何安装、使用和开发自己的Rails插件。插件可以提供新的特性或增强现有功能,帮助开发者更快地完成项目。 #### 11. Debugging, Testing, and Benchmarking(调试、测试和基准测试) 高质量的软件离不...

    ruby on rails 常用插件下载

    在这个“ruby on rails 常用插件下载”中,提到的是一个与多线程相关的插件,可能用于提高应用程序的性能和并发处理能力。 在 Ruby on Rails 中,多线程是一种处理并发请求的方式,尤其在现代硬件支持多核处理器的...

Global site tag (gtag.js) - Google Analytics