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 method to create a
new reservation and save it to the database, everything is ok, but how
can i update the member attributes points_accumulated and
points_reserved?

i uses current_user.update_attributes() under the create action of
reservation,but it doesnt work, it is nil,

i am not sure is it possible to update data of member model user the
reservation controller?

On Mon, Jan 16, 2012 at 11:44 PM, Daisy Di [email protected] wrote:

member sign in to make a reservation with the points_accumulated he has,

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

On Tue, Jan 17, 2012 at 8:36 AM, Tim S. [email protected] wrote:

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

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