我只是好奇它是如何发生的
尝试将分页中的每页用户数减少到10(默认为30,我认为太长)。我的索引测试就像这样引发了失败
1) Failure:
UsersIndexTest#test_index_as_admin_including_pagination_and_delete_links
[/home/ubuntu/workspace/contoh/test/integration/users_index_test.rb:17]:
Expected at least 1 element matching "a[href="/users/338193910"]", found 0..
Expected 0 to be >= 1.
我改变的只是分页参数 Listing 9.42
@users = User.paginate(page: params[:page],:per_page => 10)
app / controllers / users_controller.rb中的
,这是/users_index_test.rb
中的第17-20行assert_select 'a[href=?]', user_path(user), text: user.name
unless user == @admin
assert_select 'a[href=?]', user_path(user), text: 'delete',
method: :delete
答案 0 :(得分:3)
我有同样的问题因为我改变了这个 在我的app / controllers / users_controller.rb中:
def index
@users = User.paginate(page: params[:page])
end
到
def index
@users = User.paginate(page: params[:page], per_page: 10)
end
现在我在users_index_test
中遇到了同样的错误在浏览和阅读本文之后,我想出了以下解决方案:
在test / integration / users_index_test.rb中,我改变了:
first_page_of_users = User.paginate(page: 1)
到
first_page_of_users = User.paginate(page: 1, per_page: 10)
现在测试成功了:)
答案 1 :(得分:1)
尝试一些配置后
我发现将 per_page 参数放在全局参数中是解决方案
所以,我把它放在 app / controller / application_controller.rb 这一行
WillPaginate.per_page = 10