public
Description: Easily search you ActiveRecord models with a simple query language using a named scope.
Homepage: http://techblog.floorplanner.com/2008/07/26/easy-search-with-activerecord/
Clone URL: git://github.com/wvanbergen/scoped_search.git
scoped_search / README
100755 38 lines (29 sloc) 1.307 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
scoped_search
=========================================================
This simple plugin will make it easy to search your ActiveRecord models.
A simple example to demonstrate its use:
 
--
class Project < ActiveRecord::Base
searchable_on :name, :description
end
 
Project.search_for(params[:q]).each { |project| ... }
--
 
This functionality is build on named_scope. The searchable_on statement creates
a named_scope "search_for". Because of this, you can actually chain the call with
other scopes. For example, this can be very useful if you only want to search in
projects that are accessible by a given user.
 
--
class Project < ActiveRecord::Base
searchable_on :name, :description
named_scope :accessible_by, lambda { |user| ... }
end
 
# using chained named_scopes and will_paginate
Project.accessible_by(current_user).search_for(params[:q]).paginate(:page => params[:page], :include => :tasks)
--
 
The search query language is simple. It supports these constructs:
- words: some search keywords
- phrases: "a single search phrase"
- negation: "look for this" -"but do not look for this phrase and this" -word
 
 
 
This Rails plugin is written by Willem van Bergen for the Floorplanner.com website.
It is released under the MIT license. Please contact me if you have any suggestions
or remarks.