views:

809

answers:

5

I've been trying to build my first rails app and have gotten stuck on the issue of user authentication. I've found a number of tutorials for using various plug-ins to do this, but so far every single one of them is out-dated, and as a result, broken!

From what I've read, I think Authlogic may be the best fit for me, and I've tried two things:

1) Going through Railscast, episode #160 (which is a tutorial for setting it up) 2) Using Ryan B's nifty_authentication gem with the --authlogic tag

In both cases, I get the following error as soon as I try to do anything with a user:

undefined local variable or method `acts_as_authentic' for #

I believe this is from the User model:

class User < ActiveRecord::Base
  acts_as_authentic
end

I'm sure I've installed the authlogic gem, and I've added

config.gem "authlogic"

to my environment.rb

Any ideas about what's wrong? Anybody know of a complete and up to date tutorial for adding user authentication?

Edit: I'm running Ruby v. 1.8.6 and rails v. 2.3.5

+2  A: 

Here's an example app with a step-by-step guide - it's from last year but should still be mostly if not entirely accurate:

authlogic_example

fig
This is really a great tutorial that fig-gnuton has linked to. Follow this step-by-step and you will have a good understanding of how things work.
sosborn
That *is* one of the tutorials I tried following, which ended in errors!
Mark Wilbur
A: 

Another option is to use authlogic as a plugin, with:

script/plugin install git://github.com/binarylogic/authlogic.git

It also helps to look at a projects that uses authlogic as authentication module, like the fat_free_crm project, have a look at user.rb there

Last but not least, there is an active mailing list:

authlogic mailing list

Becoming popular is also the devise gem. Here you can add authentication with script/generate devise and you will have some views for login as well.

poseid
+2  A: 

Since you added that line to your environment.rb, have you tried rake gems:install to ensure the gem is installed and working correctly?

Also, what version of Ruby? What version of Rails? Have you tried running gem environment and gem list to make sure they're installed and running from the right place?

ghoppe
Yes, I used gem list to make sure it was installed. That's probably something the tutorials should have, though! Thanks
Mark Wilbur
+2  A: 

There is one thing that Ryan Bates in the RailsCasts episode doesn't talk about is about creating sessions table in your database. Type rake db:sessions:create in the console and run the migration rake db:migrate. Also like ghoppe says run rake gems:install after installing the gem. That is a requisite.

Shripad K
That did the trick! Thanks
Mark Wilbur
You are welcome :)
Shripad K
A: 

I forked that authlogic_example and added activity_tracker, authlogic, paperclip for user profile images, declarative_authorization, and user to user messages.

http://github.com/jspooner/authlogic_cucumber_rspec_example

jspooner