Welcome to the Treehouse Community
The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Jonathan hurley
6,538 PointsOut of date information in training video! Fix included. (Ruby on Rails)
A real game-stopping error is present in the video Build a Simple Ruby on Rails Application > Creating an Authentication System > Installing Devise
In the video, we are taught how to integrate 'Devise' into our ruby project.
Here are the steps as found in the video:
- Add " gem: 'devise' " to the Gemfile (line 9)
- In terminal/command prompt, type " bundle " (Providing you're running rvm 1.9.3)
- In terminal type " rails generate devise: install "
- Follow devise' integration instructions
These steps will 100% come rain or shine cause a complete failure of your site. The server throws this error:
Install does not respond to 'devise' method. This usually means you haven't loaded your ORM file or it's being loaded too late.
Why? I think it's because of differing versions of devise. The version of devise in the video is 2.1.2, whereas the version that's now downloaded is 2.2.3. The process appears to be slightly different with 2.2.3, but different enough to render the current video's instructions obsolete!
Here's what should be done:
- Add " gem: 'devise " to the Gemfile (line 9)
- Navigate to config > routes.rb. On line 2, comment out or delete " devise_for :installs "
- In terminal/command prompt, type " bundle " (Providing you're running rvm 1.9.3)
- In terminal type " rails generate devise: install "
- Follow devise' integration instructions
It's impossible to keep these videos 100% up to date, but this is a game-stopper, so I thought I'd report it! Really strange stuff (which, frankly I don't understand) occurs if you follow the video's instructions with devise 2.2.3. When you run " rails generate devise: install " for example, you get this:
Hurleys-MacBook-Pro:book hurley$ rails generate devise: install
invoke active_record
create db/migrate/201567213221751_devise_create_installs.rb
create app/models/install.rb
invoke test_unit
create test/unit/install_test.rb
create test/fixtures/installs.yml
insert app/models/install.rb
route devise_for :installs
3 Answers

James Barnett
39,199 PointsJonathan - QA issues with the videos like this are best reported to the Treehouse support team directly via email at help@teamtreehouse.com so the Teacher can hopefully add this to the teacher's note section below the video.
In cases where you've solved the issue it's great to also post on the forum to give a quick heads up to your fellow Treehouse members who may be searching at this very issue.

Philipp Antar
7,216 PointsFWIW: I just generated a brand new app and 'devise' installed just fined with the quoted steps. Also, on brand new apps there isn't a line devise_for :installs
in my Gemfile. I'm running Rails 3.2.13, ruby 1.9.3p392 and devise 2.2.3.

Christopher Wood
452 PointsI have added my devise gem, but when I go to bundle it throws errors...
" Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
...
An error occurred while installing bcrypt-ruby (3.1.1), and Bundler cannot continue.
Make sure that gem install bcrypt-ruby -v '3.1.1'
succeeds before bundling.
"
I looked around and it seems that there is something about native extensions, but I can't tell what to do.
I hope you have some insight here because it's definitely a road block for this part of the series.

Ernest Grzybowski
Treehouse Project ReviewerHey Jonathan,
Thanks for letting everyone know!