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?
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"
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.
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.
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.