Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 151 lines (100 sloc) 5.257 kb
8777f06 Norman Clarke Initial commit to 4.0.0
authored
1 # FriendlyId
2
5d94960 Andy Waite Fix broken TravisCI image
andyw8 authored
3 [![Build Status](https://travis-ci.org/norman/friendly_id.png)](https://travis-ci.org/norman/friendly_id)
ee73161 Norman Clarke Added Travis status image
authored
4
8777f06 Norman Clarke Initial commit to 4.0.0
authored
5 FriendlyId is the "Swiss Army bulldozer" of slugging and permalink plugins for
e4045ab Norman Clarke Small doc tweaks.
authored
6 Ruby on Rails. It allows you to create pretty URLs and work with human-friendly
a4128af Norman Clarke Continued work on docs
authored
7 strings as if they were numeric ids for Active Record models.
8777f06 Norman Clarke Initial commit to 4.0.0
authored
8
e4045ab Norman Clarke Small doc tweaks.
authored
9 Using FriendlyId, it's easy to make your application use URLs like:
8777f06 Norman Clarke Initial commit to 4.0.0
authored
10
11 http://example.com/states/washington
12
13 instead of:
14
15 http://example.com/states/4323454
16
f68be81 Norman Clarke Added link to docs
authored
17
8777f06 Norman Clarke Initial commit to 4.0.0
authored
18 ## FriendlyId Features
19
20 FriendlyId offers many advanced features, including: slug history and
c7f695a Norman Clarke Doc tweaks
authored
21 versioning, i18n, Globalize support, scoped slugs, reserved words, and custom
22 slug generators.
8777f06 Norman Clarke Initial commit to 4.0.0
authored
23
e4045ab Norman Clarke Small doc tweaks.
authored
24 FriendlyId is compatible with Active Record **3.0** and higher.
8777f06 Norman Clarke Initial commit to 4.0.0
authored
25
004d623 Norman Clarke Docs tweaks
authored
26 ## Version 4.x
27
f5f28ca Norman Clarke Update docs, bump version
authored
28 FriendlyId 4.x introduces many changes incompatible with 3.x. If you're
29 upgrading, please [read the
526c144 Manuel Meurer Fixed doc link
manuelmeurer authored
30 docs](http://rubydoc.info/github/norman/friendly_id/master/file/WhatsNew.md) to see what's
f5f28ca Norman Clarke Update docs, bump version
authored
31 new.
004d623 Norman Clarke Docs tweaks
authored
32
aa1fe01 Norman Clarke Updated README
authored
33 ## Docs
34
ae2ec54 Hector Castro Fixed a small typo in the README.
hectcastro authored
35 The current docs can always be found
aa1fe01 Norman Clarke Updated README
authored
36 [here](http://rubydoc.info/github/norman/friendly_id/master/frames).
37
86b0c09 Norman Clarke Added generated guide from RDoc
authored
38 The best place to start is with the
82bbce2 Norman Clarke Fix Guide URL
authored
39 [Guide](http://rubydoc.info/github/norman/friendly_id/master/file/Guide.rdoc),
86b0c09 Norman Clarke Added generated guide from RDoc
authored
40 which compiles the top-level RDocs into one outlined document.
aa1fe01 Norman Clarke Updated README
authored
41
b364a55 Norman Clarke Added Railscast link.
authored
42 You might also want to watch Ryan Bates's [Railscast on FriendlyId](http://railscasts.com/episodes/314-pretty-urls-with-friendlyid).
43
8777f06 Norman Clarke Initial commit to 4.0.0
authored
44 ## Rails Quickstart
45
46 gem install friendly_id
47
48 rails new my_app
49
50 cd my_app
51
c7f695a Norman Clarke Doc tweaks
authored
52 gem "friendly_id", "~> 4.0.1"
204c477 Norman Clarke Bump version, update README
authored
53
8777f06 Norman Clarke Initial commit to 4.0.0
authored
54 rails generate scaffold user name:string slug:string
55
56 # edit db/migrate/*_create_users.rb
e4045ab Norman Clarke Small doc tweaks.
authored
57 add_index :users, :slug, unique: true
8777f06 Norman Clarke Initial commit to 4.0.0
authored
58
59 rake db:migrate
60
61 # edit app/models/user.rb
62 class User < ActiveRecord::Base
70c8884 Norman Clarke has_friendly_id => friendly_id, and accept "use" arg to load modules
authored
63 extend FriendlyId
e4045ab Norman Clarke Small doc tweaks.
authored
64 friendly_id :name, use: :slugged
8777f06 Norman Clarke Initial commit to 4.0.0
authored
65 end
66
e4045ab Norman Clarke Small doc tweaks.
authored
67 User.create! name: "Joe Schmoe"
8777f06 Norman Clarke Initial commit to 4.0.0
authored
68
69 rails server
70
71 GET http://localhost:3000/users/joe-schmoe
72
aa1fe01 Norman Clarke Updated README
authored
73 # If you're adding FriendlyId to an existing app and need
74 # to generate slugs for existing users, do this from the
75 # console, runner, or add a Rake task:
1be839f Manuel Meurer Use `find_each` instead of `all`, since there might be a lot of users an...
manuelmeurer authored
76 User.find_each(&:save)
f68be81 Norman Clarke Added link to docs
authored
77
a4128af Norman Clarke Continued work on docs
authored
78
ce7eb3c Norman Clarke Worked on documentation.
authored
79 ## Benchmarks
80
81 The latest benchmarks for FriendlyId are maintained
aa40f56 Norman Clarke Improve peformance of finds using old friendly_id
authored
82 [here](http://bit.ly/friendly-id-benchmarks).
ce7eb3c Norman Clarke Worked on documentation.
authored
83
84
8777f06 Norman Clarke Initial commit to 4.0.0
authored
85 ## Bugs
86
bda2b36 Norman Clarke Doc tweaks
authored
87 Please report them on the [Github issue
88 tracker](http://github.com/norman/friendly_id/issues) for this project.
8777f06 Norman Clarke Initial commit to 4.0.0
authored
89
90 If you have a bug to report, please include the following information:
91
92 * **Version information for FriendlyId, Rails and Ruby.**
e4045ab Norman Clarke Small doc tweaks.
authored
93 * Full stack trace and error message (if you have them).
aa1fe01 Norman Clarke Updated README
authored
94 * Any snippets of relevant model, view or controller code that shows how you
8777f06 Norman Clarke Initial commit to 4.0.0
authored
95 are using FriendlyId.
96
97 If you are able to, it helps even more if you can fork FriendlyId on Github,
98 and add a test that reproduces the error you are experiencing.
99
e4045ab Norman Clarke Small doc tweaks.
authored
100 For more info on how to report bugs, please see [this
101 article](http://yourbugreportneedsmore.info/).
102
aa1fe01 Norman Clarke Updated README
authored
103 ## Thanks and Credits
8777f06 Norman Clarke Initial commit to 4.0.0
authored
104
bda2b36 Norman Clarke Doc tweaks
authored
105 FriendlyId was originally created by Norman Clarke and Adrian Mugnolo, with
106 significant help early in its life by Emilio Tagua. I'm deeply gratful for the
107 generous contributions over the years from [many
8777f06 Norman Clarke Initial commit to 4.0.0
authored
108 volunteers](https://github.com/norman/friendly_id/contributors).
109
d261d19 Norman Clarke Added note on Slugged
authored
110 Part of the inspiration to rework FriendlyId came from Darcy Laycock's library
111 [Slugged](https://github.com/Sutto/slugged), which he was inspired to create
112 because of frustrations he experienced while using FriendlyId 3.x. Seeing a
113 smart programmer become frustrated with my code was enough of a kick in the
e4045ab Norman Clarke Small doc tweaks.
authored
114 butt to make me want to significantly improve this library.
d261d19 Norman Clarke Added note on Slugged
authored
115
116 Many thanks to him for providing valid, real criticism while still being a cool
117 about it. I definitely recommend you check out his library if for some reason
118 FriendlyId doesn't do it for you.
119
aa1fe01 Norman Clarke Updated README
authored
120 Thanks also to Loren Segal and Nick Plante for YARD and the
121 [rubydoc.info](http://rubydoc.info/) website which FriendlyId uses for
122 documentation.
123
ee73161 Norman Clarke Added Travis status image
authored
124 Lastly, FriendlyId uses [Travis](http://travis-ci.org/) for continuous
125 integration. It's an excellent, free service created by a whole bunch of [good
126 people](https://github.com/travis-ci) - if you're not already using it, you
127 should be!
128
aa1fe01 Norman Clarke Updated README
authored
129 ## License
130
258baba Norman Clarke Add @parndt to authors
authored
131 Copyright (c) 2008-2012 Norman Clarke and contributors, released under the MIT
132 license.
aa1fe01 Norman Clarke Updated README
authored
133
134 Permission is hereby granted, free of charge, to any person obtaining a copy of
135 this software and associated documentation files (the "Software"), to deal in
136 the Software without restriction, including without limitation the rights to
137 use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
138 of the Software, and to permit persons to whom the Software is furnished to do
139 so, subject to the following conditions:
140
141 The above copyright notice and this permission notice shall be included in all
142 copies or substantial portions of the Software.
143
144 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
145 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
146 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
147 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
148 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
149 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
150 SOFTWARE.
Something went wrong with that request. Please try again.