Forum: Italian Ruby user group Problema con @user.save

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Marco C. (Guest)
on 2008-11-09 20:39
Salve,

sto impazzendo con le seguenti righe di codice:


@user = User.find(params[:id])

if @user && @user.status == 'not_verified' && @user.activation_code ==
params[:code]
  @user.status = 'active'

  unless @user.save
    flash[:notice] = "Impossibile attivare l'account."
    redirect_to :controller => 'welcome'
  end

else
  flash[:notice] = "L'account è già attivo..."
  redirect_to :controller => 'welcome'
end


Continuo ad ottenere "Impossibile attivare l'account". Cos'è che mi
sfugge in quell'@user.save?


Ecco cosa ottengo nel log degli errori:

Processing AccountController#activate (for 127.0.0.1 at 2008-11-09
19:31:35) [GET]
  Session ID:
BAh7CDoMY3NyZl9pZCIlYjFjZDg4NWI2N2YwY2IxODdkMjQ2YTAwMzZiMzc3
OWQ6DHVzZXJfaWRpCiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxh
c2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA==--62b26d3b43dc88e45ccf3c108fe9790c88f5173e
  Parameters: {"code"=>"UvJCLYhqdOo89ixzLt6X", "action"=>"activate",
"id"=>"4", "controller"=>"account"}
  User Load (0.000227)   SELECT * FROM "users" WHERE
("users"."id" = 4) 
  SQL (0.000086)   SELECT "email" FROM "users" WHERE
("users".email = 'removed_email_address@domain.invalid' AND "users".id <> 4) 

Redirected to http://localhost:3000/
Completed in 0.00958 (104 reqs/sec) | DB: 0.00031 (3%) | 302 Found
[http://localhost/account/4/activate/UvJCLYhqdOo89ixzLt6X]



Grazie
Antonio C. (Guest)
on 2008-11-09 21:08
(Received via mailing list)
On Sun, Nov 9, 2008 at 1:39 PM, Marco C. <removed_email_address@domain.invalid>
wrote:

> Continuo ad ottenere "Impossibile attivare l'account". Cos'è che mi
> sfugge in quell'@user.save?
>

Probabilmente c'è qualche validation che fa fallire il salvataggio. Prova
a
valutare @user.errors dopo il tentativo fallito di salvataggio.

Ciao,
Antonio
--
http://antoniocangiano.com - Zen and the Art of Programming
http://math-blog.com - Mathematics is wonderful!
http://stacktrace.it - Aperiodico di resistenza informatica
Currently writing "Ruby on Rails for Microsoft Developers" for Wrox.
Fabrizio R. (Guest)
on 2008-11-09 22:30
(Received via mailing list)
Ciao,
puoi sempre piazzare un bella istruzione 'debugger' e lanciare il
server con -u.
oppure un bel 'raise @user.errors.inspect' subito dopo il save per un
controllo più veloce.
La perfezione sarebbe scrivere un test.

A giudicare da questa riga:
SELECT "email" FROM "users" WHERE ("users".email =
'removed_email_address@domain.invalid
' AND "users".id <> 4
una validazione viene seguita, sembra la
'validates_uniqueness_of :email'.


Il giorno 09/nov/08, alle ore 19:39, Marco C. ha scritto:
Marco C. (Guest)
on 2008-11-09 22:44
Grazie mille per i consigli! Sono stati utilissimi.

Ora ho individuato l'errore (che si trova nella validazione della
password) e tento di risolverlo.
This topic is locked and can not be replied to.