我正在显示我的视图中的项目列表。我的控制器类执行一个SQL来获取列表。此外,我更新表中的一些值,如果取回列表。问题是在select语句之前正在设置值。下面是控制器的代码:Ruby中的SQL命令执行顺序
@orders = List.select("itemname,tableno,quantity,itmstatus").where(:tableno => "01")
List.where(:tableno => "01").update_all(:ordstatus => 'displayed',:itmstatus => 'displayed')
我的视图显示在@orders
检索不同的字段。现在基于itemstatus值,我需要在我的视图中设置文本颜色代码。所以一旦我的select语句被执行,我将itmstatus值设置为其他值。但在我看来,@orders具有更新的值(我在选择后正在执行)。我在服务器端进行了检查,select语句在更新语句后执行,我认为可能是在@orders中更新了值。有什么办法可以让我选择后执行更新语句。我尝试了下面和其他选项,但没有运气。
if @orders
@orders = List.select("itemname,tableno,quantity,itmstatus").where(:tableno => "01")
List.where(:tableno => "01").update_all(:ordstatus => 'displayed',:itmstatus => 'displayed')
end
请指教。谢谢。
非常感谢。 .to_a工作。我的查询将有最多10行,所以表现明智,这不是一个问题。再次感谢您的详细解释。这有很大帮助。 – Gaurav