【问题标题】:Heroku PostgreSQL changing sortable_list POST?Heroku PostgreSQL 更改 sortable_list POST?
【发布时间】:2011-12-06 15:52:15
【问题描述】:

我在使用 PostgreSQL 时遇到了最奇怪的问题 - 有人可以帮忙吗?

我的应用程序允许用户创建对象,然后将其列在页面上。我按照 Ryan Bates Railscasts tutorial 让它们可排序,这在我的系统上运行良好。

所以在本地,使用这个代码:

  def sort
    params[:faqs].each_with_index do |id, index|
      Object.update_all(['position=?', index+1], ['id=?', id])
    end
    render :nothing => true
  end

我在 POST 请求中得到这个输出:

12 月 6 日星期二开始为 127.0.0.1 发布“/users/sort_object” 16:43:52 +0100 2011 ObjectController 处理#sort as JS
参数: {"authenticity_token"=>"#####################", “_”=>“”,“常见问题”=>[“5”,“1389”,“11”,“1350”,“147”,“849”,“932”, “1260”、“23”、“10”、“1261”]} AREL (1.8ms) 更新“对象”集 position=1 WHERE (id='5') AREL (1.2ms) UPDATE "objects" SET position=2 WHERE (id='1389') AREL (2.9ms) UPDATE "objects" SET position=3 WHERE (id='11') AREL (3.3ms) UPDATE "objects" SET position=4 WHERE (id='1350') AREL (1.4ms) UPDATE "objects" SET position=5 WHERE (id='147') AREL (1.5ms) UPDATE "objects" SET position=6 WHERE (id='849') AREL (1.2ms) UPDATE "objects" SET position=7 WHERE (id='932') AREL (1.5ms) UPDATE "objects" SET position=8 WHERE (id='1260') AREL (1.5ms) UPDATE "objects" SET position=9 WHERE (id='23') AREL (2.0ms) UPDATE "objects" SET position=10 WHERE (id='10') AREL (1.9ms) UPDATE "objects" SET position=11 WHERE (id='1261') 渲染文本模板(0.0ms)

我已经在本地对多个用户进行了测试,并且更改一个用户的顺序似乎不会干扰其他用户的对象 - 如您所见,数据库仅插入为该用户列出的对象 ID 的位置。

但是,当我查看存储在 Heroku 上的数据库时,发生了一些奇怪的事情。我最终得到的用户有多个位置 = 1 的对象,这似乎是由其他用户改变他们的位置引起的。

有人可以帮忙吗?有没有办法可以调试这个(我在 Heroku 上没有专用服务器,所以我不能流式传输日志)?谁知道是什么原因造成的?

希望这很清楚,如果没有,请大喊...

【问题讨论】:

  • 您可以在 CLI 中跟踪日志,heroku logs -f 尽管您可能需要提高日志记录级别并升级到扩展日志记录(它是免费的)以启用跟踪。
  • 这只是给了我服务器请求可悲的是,它不允许我像 CLI 那样看到实际发布到数据库的内容?还是我错过了什么?

标签: jquery ruby-on-rails postgresql heroku


【解决方案1】:

本教程仅适用于使用排序功能的一位用户(即站点管理员)。您需要应用不同的解决方案(将每个用户的排序顺序存储在会话或其他内容中)。

【讨论】:

  • 这个答案绝对正确,我半小时前就想通了。只是为了扩展:当用户删除一个对象时,acts_as_list 插件会调用一个方法,该方法会减少其下方所有内容的“位置”,以使其保持有序。当然,对于多个职位,它会影响一切,无论用户如何。它根本与 PostgreSQL 无关,我能够使用本地数据库重现它 - 为措辞不当的问题道歉!
猜你喜欢
  • 2011-12-30
  • 2012-04-09
  • 2018-01-25
  • 1970-01-01
  • 2021-08-05
  • 2012-03-06
  • 2012-06-06
  • 2012-12-09
  • 1970-01-01
相关资源
最近更新 更多