esperando que alguien aquí pueda señalarme en la dirección correcta.rails update_attributes devuelve false cuando se intenta actualizar los valores db
Tengo un controlador Actualización def ejecutando "atributos_actualización". Actualmente devuelve falso, sin mensaje de error. Soy bastante nuevo para Ruby, pero no para la codificación, ¡y esto me ha dejado perplejo durante unos días! Estoy tratando de actualizar el modelo de usuario y db con los valores especificados a continuación.
def update
#get currently logged in user
@user = current_user
#update user params based on edit form...
if @user.update_attributes(params[:user])
redirect_to profile_path, :notice => "Successfully updated profile."
else
render :action => 'edit'
end
end
mi edición def ....
def edit
@user = current_user
end
El formulario envía el siguiente a este método de actualización:
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
utf8: ✓
_method: put
authenticity_token: 9T4ihVI0p8j7pZEFxof3Bfahi2a+o3BPmtXJDnfHT4o=
user: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
first_name: Amanda
last_name: Ross
is_owner: '1'
email: [email protected]
commit: Update
action: update
controller: users
id: '20'
Y params [: Usuario] devuelve:
{"first_name"=>"Amanda", "last_name"=>"Ross", "is_owner"=>"1", "email"=>"[email protected]"}
Todos estos campos están en attr_accessible en el Modelo, y puedo crear un usuario sin ningún problema.
aquí está la salida development.log (lo siento que es un poco desordenado) ....
Started PUT "https://stackoverflow.com/users/20" for 127.0.0.1 at 2012-04-17 10:39:29 +0100
Processing by UsersController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"9T4ihVI0p8j7pZEFxof3Bfahi2a+o3BPmtXJDnfHT4o=", "user"=> {"first_name"=>"Amanda", "last_name"=>"Ross", "is_owner"=>"1", "email"=>"[email protected]"}, "commit"=>"Update", "id"=>"20"}
[1m[36mUser Load (1.0ms)[0m [1mSELECT "users".* FROM "users" WHERE "users"."id" = 20 LIMIT 1[0m
>>>>>>>>>>>>
{"first_name"=>"Amanda", "last_name"=>"Ross", "is_owner"=>"1", "email"=>"[email protected]"}
[1m[35m (0.0ms)[0m begin transaction
[1m[36mUser Exists (0.0ms)[0m [1mSELECT 1 FROM "users" WHERE (LOWER("users"."email") = LOWER('[email protected]') AND "users"."id" != 20) LIMIT 1[0m
[1m[35mUser Exists (0.0ms)[0m SELECT 1 FROM "users" WHERE ("users"."email" = '[email protected]' AND "users"."id" != 20) LIMIT 1
[1m[36m (0.0ms)[0m [1mrollback transaction[0m
Rendered users/_form.html.erb (7.0ms)
Rendered users/edit.html.erb within layouts/application (10.0ms)
Rendered layouts/_includes.html.erb (30.0ms)
puede uno ayudar a señalar dónde voy mal, por favor?
¡Gracias de antemano!
¿Has comprobado 'development.log'? – Alex
Una descripción del mensaje de error sería agradable - no sé cómo está obteniendo 'false' – Jonathan
añadido output.log de salida en la publicación principal .... (acaba de obtener una reversión) – steve