update data to database

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

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

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])

There are better ways instead of mine I guess :slight_smile:

but I just wanted to show it because that may be the problem

Javier