SkRoR
SkRoR

Reputation: 1199

How to update an active record in ruby

I want to update status to 1, when user views a message.

i need an active record, to change status to 1 ,where status is 0 and id is current id

Any help is appreciated. i want to change this query to active record.

UPDATE 'course_queries SET status = '1' WHERE course_queries.id =41 and status=0;

Upvotes: 1

Views: 11490

Answers (2)

Nithin
Nithin

Reputation: 3699

Something like this

Using ActiveRecord.

@course_query = CourseQuery.find(params[:id]) #id is 41 from your comment
  if @course_query.status == 0
     @course_query.status = 1 
     @course_query.save
  end

Upvotes: 1

John
John

Reputation: 394

As Nithin mentioned, ActiveRecord is a rails feature. Thus, the following wouldn't work unless you're using the Ruby on Rails framework.

With that said, you could also try:

@course = CourseQuery.where(id: params[:id], status: 0).each do |q|
    q.update(status: 1)
end

If you need it all in one line, you could use:

@course = CourseQuery.where(id: params[:id], status: 0).update_all(status: 1)

You can then change the id or status here dynamically. :)

Since these examples use the update and update_all methods, I'd recommend you read up about them. Here's a great article I've found on the differences: Difference between active record methods – update, update_all, update_attribute, update_attributes

Upvotes: 3

Related Questions