Rails查询不返回更新的记录

时间:2012-07-11 18:23:31

标签: ruby-on-rails-3 activerecord

Rails没有返回记录的更新版本。

我在模型中有两个方法,submit_job(sig, label, jobtype)用于将作业提交到将在后端处理的数据库,然后poll_result(id)将每秒轮询提交的作业以查看它何时完成,然后将完成的作业的结果返回给用户。

我的问题是poll_result(id)方法永远不会获得更新的记录。

def self.poll_result(id)

    change = false
    Workbench.where("id = ?", id).each do |sig|         
        if sig.resultsready.to_i == 1
            change = true
        end
    end
    return change
end

所有这一切都是我的原始插入结果反复出现,正如我所看到的那样,我打印出它正在访问的记录的结果。我正在直接查看数据库,可以看到它正在调用正确的ID,并且记录已更新。 resultsready在数据库中设置为1,循环应该结束,它应该返回,但它只是陷入无限循环。

我的假设是它以某种方式获得了一个旧的/陈旧的记录,不知何故被缓存,但我不能为我的生活弄清楚如何强制它获得新的记录。

谢谢,

丹尼斯

1 个答案:

答案 0 :(得分:0)

使用Workbench.connection.clear_query_cache解决了问题!具体来说,我在调用Workbench.poll_result(id)

之前在控制器级别添加了它