背景:
我用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张图片记录。
以这种方式删除记录后,如果这些记录仍然存在,will_paginate是否会显示页面?
will_paginate会抛出错误,说明带有:id =&gt; 1的图片不存在?
如何删除图片记录并重新开始:id =&gt; 1? (但如果
由于
答案 0 :(得分:1)
通常,在测试功能时,您应该在生产环境中使用不同的数据库,这样您就不需要在尝试偏移ID或事后删除。
尽管回答你的问题......
is_paranoid
这样的内容,否则它们将不再存在。will_paginate
无关心ID是否按顺序排列,只关心总行数Picture.each(&:destroy)
将删除所有照片,重置auto_increment
(功能数据库),您需要运行此类内容... ALTER SEQUENCE your_sequence_name RESTART WITH 1;