update data to database

14 views
Skip to first unread message

Daisy Di

unread,
Jan 16, 2012, 11:44:36 PM1/16/12
to rubyonra...@googlegroups.com
Dear All
i am a beginner of ruby ob rails , now there is one problem i dont know
how to resolve it,there two tables ,

one is reservation,colums are:
id(int),mbr_id(int),,qty_reserved(decimal),valid_date(datetime)
the other is member,columns are:
id(int),email(char),encrypted_password
(char),points_accumulated(decimal),points_reserved(decimal)

member sign in to make a reservation with the points_accumulated he has,
then in the controller of reservations, i define a methos to create a
new reservation and save it to the database, everythins is ok, but how
can i update the member attributes points_accumulated and
points_reserved?

i uses current_user.update_attributes() unser the create action of
reservation,but it doesnt work, it is nil,
any one can help me?
thanks

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

Javier Quarite

unread,
Jan 17, 2012, 6:31:20 AM1/17/12
to rubyonra...@googlegroups.com
let's say you got this 

def create

          @current_user = CurrenUser.new(params[:id])
          @current_user. points_accumulated = @current_user.points_accumulated + 1
          @current_user.save

end

* That's a way and it maybe even shorter, but I dont know what are the rules you have

Javier

Tim Shaffer

unread,
Jan 17, 2012, 8:36:45 AM1/17/12
to rubyonra...@googlegroups.com
Just a note that you should be careful using this method to increment a value. It can cause a race condition.

A safer method is to use increment_counter since it updates the value directly in the database, not using the current attribute value on the instance

CurrentUser.increment_counter(:points_accumulated, params[:id])

Javier Quarite

unread,
Jan 17, 2012, 8:59:40 AM1/17/12
to rubyonra...@googlegroups.com
There are better ways instead of mine I guess :)
but I just wanted to show it because that may be the problem

Javier
Reply all
Reply to author
Forward
0 new messages