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