Will_paginate已删除帖子的行为 - 显示正确的页数

时间:2011-11-17 03:26:42

标签: ruby-on-rails ruby-on-rails-3 paperclip will-paginate

背景:

我用User模型制作了一个新的rails 3应用程序,该模型有回形针附件(图片模型)。我发布了我提交的前15张图片记录(附件)作为检查功能的测试。 我在控制器中执行以下操作以显示除前15个测试图像之外的所有图片:

  

@ pictures = Picture.order('pictures.id DESC')。limit(Picture.last.id-15).paginate(:page =&gt; params [:page],:per_page =&gt; 15)< / p>

虽然我没有显示前15条记录,但是如果前15条记录仍然显示在索引视图中,will_paginate仍显示页数(因为will_paginate从图片模型中获取此记录)

我想做什么: 使用will_paginate显示正确的页数。删除测试图片记录(前15条记录)

问题:  我可以使用Picture.destroy(:id)删除前15张图片记录。

  1. 以这种方式删除记录后,如果这些记录仍然存在,will_paginate是否会显示页面?

  2. will_paginate会抛出错误,说明带有:id =&gt; 1的图片不存在?

  3. 如何删除图片记录并重新开始:id =&gt; 1? (但如果

  4. ,这可能不是必要的

    由于

1 个答案:

答案 0 :(得分:1)

通常,在测试功能时,您应该在生产环境中使用不同的数据库,这样您就不需要在尝试偏移ID或事后删除。

尽管回答你的问题......

  1. 不,因为它们会在数据库中销毁,除非您使用is_paranoid这样的内容,否则它们将不再存在。
  2. will_paginate无关心ID是否按顺序排列,只关心总行数
  3. Picture.each(&:destroy)将删除所有照片,重置auto_increment(功能数据库),您需要运行此类内容...
  4. ALTER SEQUENCE your_sequence_name RESTART WITH 1;