Replace param name of resources' id. Useful for making user friendly URL.
You can use :replace_id_with
option for resources
.
resources :users, :replace_id_with => 'name'
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:name/edit(.:format) users#edit
user GET /users/:name(.:format) users#show
PUT /users/:name(.:format) users#update
DELETE /users/:name(.:format) users#destroy
Good with the following codes.
class User < ActiveRecord::Base
def to_param
name
end
end
class UsersController < ApplicationController
def show
@user = User.find_by_name!(params[:name])
end
end
Add this line to your application's Gemfile:
gem 'resources_id_replace'
And then execute:
$ bundle
Or install it yourself as:
$ gem install resources_id_replace
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request