RailsCasts Pro episodes are now free!

Learn more or hide this

Applied Filters: routes xRevised Episodes x
Model Name in URL (revised)
Episode #63Dec 16, 201285 comments

Model Name in URL (revised)

A model's ID in the URL is not very helpful to the user. Consider adding the name which can also improve SEO. Learn how to override to_param, add a slug attribute, and make a catch all route for deep nesting. (9 minutes)
Devise (revised)
Episode #209Jul 06, 201275 comments

Devise (revised)

Devise is one of the most popular authentication plugins for Rails. Here I show how to set it up with a User model and configure the modules, views, routes, and more. (8 minutes)
Custom App Generators (revised)
Episode #148Feb 03, 2013100 comments

Custom App Generators (revised)

Learn how to customize the Rails app generator to fit your preference. This episode shows how to do this using .railsrc file, app templates, app builders, RailsWizard, and AppScrolls. (10 minutes)
Subdomains (revised)
Episode #123Jan 13, 201266 comments

Subdomains (revised)

In Rails 3.1 subdomains are easier than ever to use. Here I show how to route a subdomain to a specific controller action, generate links, nest resources, and more. (7 minutes)
Semi-Static Pages (revised)
Episode #117Sep 02, 201270 comments

Semi-Static Pages (revised)

There are many ways to handle static pages in a Rails application. Here I show two approaches including one that uses a RESTful style PagesController to keep the content in the database (8 minutes)
I18n (revised)
Episode #138Mar 29, 201279 comments

I18n (revised)

Translate a site into other languages through internationalization (I18n). Here I show how to store a locale in the URL and manage translated text through YAML files. (10 minutes)
Destroy without JavaScript (revised)
Episode #77Jun 16, 201248 comments

Destroy without JavaScript (revised)

A destroy link in Rails does not work without JavaScript. In this episode I show two techniques for gracefully degrading destroy links: button_to and a delete action. (8 minutes)