我有一个模型问题,其中有很多选项。
在一个动作中,我修改了一个Question对象的Options,然后将Question对象作为json返回。 (这用于ajax调用)。问题是,返回的json不是最新的,并不反映我所做的修改。
def action
question = Question.find(:id)
question.options.each do |op|
op.blah += 1
end
respond_to do |format|
if question.save()
format.json { render json: {question: question.to_json(:include => :options)} }
else
blah blah
end
end
end
答案 0 :(得分:1)
很奇怪,因为您编辑了相应的项目,然后保存(并验证它们已保存到db --since refresh)。所以渲染到json应该可以工作。
您可以随时执行明确的reload
来电,例如
format.json { render json: {question: question.reload.to_json(:include => :options)} }
但如果这是原因,那将是非常奇怪的,因为你实际上只是保存了那些数据。
但是昨天我遇到了类似的问题,实际上发生了我replaceHtml
div
的{{1}},但我插入的数据没有相同的周围div
。所以它第一次正确更新,第二次只显示旧数据(实际上它没有做任何事情,因为它没有找到要替换的div)。
所以简而言之:如果简单地刷新工作,imho它不是数据库而且它不是缓存,但很可能是你的javascript中的东西:更新屏幕出错了。
希望这有帮助。
答案 1 :(得分:0)
question.options.each do |op|
op.blah += 1
op.save
end
修改后您忘记保存选项。