我对PostgreSQL有最奇怪的问题-有人能帮忙吗?
我的应用程序允许用户创建对象,然后在页面上列出这些对象。我跟随瑞安·贝茨铁路公司(Ryan-Bates Railscasts)的做法,让它们变得可分类,这在我的系统上运行得很好。
所以在本地,使用以下代码:
def sort
params[:faqs].each_with_index do |id, index|
Object.update_all(['position=?', index+1], ['id=?', id])
end
render :nothing => true
end
我在POST请求中得到这个输出:
2006年12月2日开始发布127.0.0.1的“/users/sort_object”
16:43:52+0100 2011由ObjectController处理#排序为JS
参数:
{“真品标志”=>“,”,
“=>”,“常见问题”=>[“5”,“1389”,“11”,“1350”,“147”,“849”,“932”,
“1260”、“23”、“10”、“1261”]}AREL(1.8ms)更新“对象”集
位置=1,其中(id='5')是(1.2ms)更新“对象”集
位置=2,其中(id='1389')是(2.9ms)更新“对象”集
位置=3,其中(id='11')是(3.3ms)更新“对象”集
位置=4,其中(id='1350')是(1.4ms)更新“对象”集
位置=5,其中(id='147')是(1.5ms)更新“对象”集
位置=6,其中(id='849')是(1.2ms)更新“对象”集
位置=7,其中(id='932')是(1.5ms)更新“对象”集
位置=8,其中(id='1260')是(1.5ms)更新“对象”集
位置=9,其中(id='23')是(2.0ms)更新“对象”集
位置=10,其中(id='10')是(1.9ms)更新“对象”集
位置=11,其中(id='1261')呈现文本模板(0.0ms)
我已经在本地测试了多个用户,更改其中一个用户的顺序似乎不会干扰其他用户的对象-如您所见,数据库只是插入该用户列出的对象ID的位置。
然而,当我看到存储在Heroku上的DB时,一些奇怪的事情正在发生。最后,我发现用户拥有多个position=1的对象,这似乎是由其他用户更改其位置造成的。
有人能帮忙吗?有没有方法可以调试这个(我在Heroku上没有一个专用服务器,所以我不能流日志)?有人知道是什么引起的吗?
希望这是清楚的,如果没有喊。。。
最佳答案
本教程仅适用于使用排序功能的一个用户(即站点管理员)。您需要应用不同的解决方案(将每个用户的排序顺序存储在会话或其他内容中)。