2015-10-06 43 views
-1

我想在用户查看消息时将状态更新为1。如何更新ruby中的活动记录

我需要一个有效记录的,要改变为1,status其中状态为0和id是电流id

任何帮助理解。 我想将此查询更改为活动记录。

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

回答

0

正如Nithin提到的,ActiveRecord是一个rails功能。因此,除非您使用Ruby on Rails框架,否则以下方法无效。

虽这么说,你也可以尝试:

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

如果你需要把一切都行,你可以使用:

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

然后,您可以更改ID或状态这里动态。 :)

由于这些示例使用update和update_all方法,所以我建议您阅读它们。这里有一篇很好的文章,我找到了差异:Difference between active record methods – update, update_all, update_attribute, update_attributes

+0

谢谢@ jr180180 ...这工程 – SreRoR

+0

如果请你能避免这种循环并给出答案。 – SreRoR

+0

对不起,我不确定你的循环意味着什么。发生了什么? – jr180180

2

像这样的事情

的ActiveRecord是Rails功能。

@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 
+1

这不是更新 – SreRoR

+1

什么是错误? 'print @ course_query.errors' – Nithin

+0

我更新了以上我的控制器和错误 – SreRoR