ruby on rails - Model/ActiveRecord not saving new data -


i have confirmed method works. takes email controller , changes email of specific user.

however never saves data. pass wrong email format , returns false if pass correct email method returns true means assigned new email , called safe.

# allows user change email address def change_email(newmail)     address = emailveracity::address.new(newmail)    if address.valid?     self.email = newmail     self.save     return true   else     return false   end  end 

i checked logs first hints nothing is:

started post "/members/editmail" 127.0.0.1 @ 2013-04-25 17:33:44 +0200 processing memberscontroller#editmail html   parameters: {"authenticity_token"=>"*****=", "mail"=>"*****@gmail.com"}   ←[1m←[35muser load (1.0ms)←[0m  select `users`.* `users` `users`.`id` = 1 limit 1   ←[1m←[36mcharacter load (0.0ms)←[0m  ←[1mselect `characters`.* `characters` `characters`.`user_id` = 1←[0m   ←[1m←[35m (0.0ms)←[0m  begin   ←[1m←[36muser exists (0.0ms)←[0m  ←[1mselect 1 `users` (`users`.`email` = binary '*****@gmail.com' , `users`.`id` != 1) limit 1←[0m   ←[1m←[35muser exists (0.0ms)←[0m  select 1 `users` (`users`.`username` = binary '******' , `users`.`id` != 1) limit 1   ←[1m←[36m (0.0ms)←[0m  ←[1mrollback←[0m redirected http://localhost:3000/members/1 completed 302 found in 10ms (activerecord: 1.0ms) 

also make sense have method change attribute. since i'm using devise gem authentication can use current_user variable retrieve user object logged in user , call current_user.email = newmail; current_user.save in controller.

self.save! throw exception when not saved.

also, might not right:

self.save return true 

self.save returns true or false according if saved or not. might want rid of return true , let return value 1 returned self.save

selfkeyword not needed in context, neither return keywords. equivalent code:

# allows user change email address def change_email(newmail)     address = emailveracity::address.new(newmail)    if address.valid?     self.email = newmail     save     true   else     false   end end 

that equivalent to

# allows user change email address def change_email(newmail)     address = emailveracity::address.new(newmail)    if address.valid?     self.email = newmail     save   end   address.valid? end 

which should not want.


Popular posts from this blog

How to calculate SNR of signals in MATLAB? -

c# - Attempting to upload to FTP: System.Net.WebException: System error -

ios - UISlider customization: how to properly add shadow to custom knob image -