*Please Help* Cannot save a new user to the database

Hello,

I am following the RailsSpace tutorial and am at the point where I am
creating a new user through (user/register)

I have added the details into the form: screen_name, email and
password.

When I click register, I would expect this to be saved (commited) to
the database.

However – when I look in the terminal, it says ‘Rollback’ instead of
‘COMMIT’

The code in the user controller looks like this:

class UserController < ApplicationController

def register
@title = “Register”
if request.post? and params[:user]
@user = User.new(params[:user])
if @user.save
flash[:notice] = “User #{@user.screen_name} created!”
redirect_to :action => “index”
end
end
end

Does anyone know why in my terminal it is not saving this as I’d
expect?

Many Thanks

2009/8/28 RubyonRails_newbie [email protected]:

the database.
  if request.post? and params[:user]
   @user = User.new(params[:user])
   if @user.save
    flash[:notice] = “User #{@user.screen_name} created!”
    redirect_to :action => “index”

I would expect see something like this here, for the case when the save
fails
else
render :action => “new or whatever is is the action that
posted to register”

   end
  end
 end

Does anyone know why in my terminal it is not saving this as I’d
expect?

Maybe your validations are failing, if you have the else condition
above and then in the new action (or whatever it is) inside the
form_for you should have <%= f.error_messages %> and the errors will
appear.

Colin

cheers Colin - i’ll try this out.

… the strange thing is, the code I have written is axactly the same
as that in the railsspace website…
(Railsspace.com is for sale | HugeDomains)

On 28 Aug, 14:33, RubyonRails_newbie [email protected]

On Fri, Aug 28, 2009 at 5:20 AM,
RubyonRails_newbie[email protected] wrote:

I have added the details into the form: screen_name, email and
password.

When I click register, I would expect this to be saved (commited) to
the database.

And there’s no specific error in the log? That’s surprising.

I would try this in the Rails console, using @user.save! to show any
errors being generated.

You could also look at your DB query and/or error logs for more info.


Hassan S. ------------------------ [email protected]
twitter: @hassan

2009/8/28 RubyonRails_newbie [email protected]:

… the strange thing is, the code I have written is axactly the same
as that in the railsspace website…
(Railsspace.com is for sale | HugeDomains)

Could you bottom post rather than top? That is the convention on this
list, it makes it easier to follow threads.

Do they go on to extend this code to cope with save failures later on
in the tutorial? If you just want to get past this for the moment
have a close look at any validations in the User model, possibly
comment them out for the moment. Also have a look at the log
(log/development.log) to see what values were passed as params in the
POST. This may be a good time to have a look at ruby-debug (see
#54 Debugging with ruby-debug - RailsCasts). You
could put a break point after @user = User.new(params[:user]) and
check that it looks ok.

Colin

As others have pointed out, there’s a validation failing on your User
model.

I’d also point out that RailsSpace may not be a good book to start
with, as it is positively ancient as Rails books code. The printed
code is targeted at version 1.2.3, which is over 2 years old now.
You’ll be better served, I’d assume, with a newer tutorial.

–Matt J.

On Aug 28, 8:20 am, RubyonRails_newbie [email protected]