:on => :create validation weirdness

Hi there,

I’m creating a simple login form, and I want the password to be
validated only on creation (when a user edits, they will edit their
profile on a separate screen). Therefore, my model looks like this:

validates_presence_of :password, :password_confirmation, :on => :create

When I break the form on purpose (don’t fill in a password on creation),
I get this:

Missing template users/create.html.erb in view path
cookingfriend/app/views

Why would it be doing that? I can only think it might have something to
do with my routes? Here’s what I have:

map.resources :users

What could it be?

Thanks!

Show your controller code.

On Tue, Sep 30, 2008 at 6:48 PM, Dave A.
[email protected] wrote:

I get this:

Thanks!

Posted via http://www.ruby-forum.com/.


Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
(en)
João Pessoa, PB, +55 83 8867-7208

def new
  @user = User.new
end

def create
@user = User.new(params[:user])
if request.post?
if @user.save
session[:user] = User.authenticate(@user.email,
@user.password)
flash[:message] = “You are now a member of Cooking Friend!”
redirect_to :action => “show”, :id => @user.id
else
flash[:warning] = “Uh oh. You aren’t signed up.”
end
end
end

That did it. Duh. :slight_smile: Thanks a lot!

Here’s how it should be:

def new
@user = User.new
end

def create
@user = User.new(params[:user])
if request.post?
if @user.save
session[:user] = User.authenticate(@user.email, @user.password)
flash[:message] = “You are now a member of Cooking Friend!”
redirect_to :action => “show”, :id => @user.id
else
flash[:warning] = “Uh oh. You aren’t signed up.”
render :action => “new” #this is the missing line
end
end
end

On Tue, Sep 30, 2008 at 6:54 PM, Dave A.
[email protected] wrote:

@user.password)


Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
(en)
João Pessoa, PB, +55 83 8867-7208