gpt4 book ai didi

ruby-on-rails - 数组 will_paginate rspec 的未定义方法 total_pages'

转载 作者:太空宇宙 更新时间:2023-11-03 17:32:51 25 4
gpt4 key购买 nike

我已将 gem 'will_paginate' 和 gem 'will_paginate-bootstrap' 添加到我的应用程序中,并且运行良好。但是,由于 RSpec 测试,我确实收到了此错误消息。

Failure/Error: render
ActionView::Template::Error:
undefined method `total_pages' for #<User::ActiveRecord_Relation:0x007f8c238a97b8>

这是 Rspec 代码:

 it "renders a list of users" do
render

page = Capybara::Node::Simple.new(rendered)

expect(page).to have_content("Smith, Agent admin@somewhere.com Site Admin")
expect(page).to have_content("Johnson, Bob manager.email@elsewhere.com The Company Name")
end

用户 Controller .rb

def index
@per_page = params[:per_page] || 10
@users = User.paginate(:page => params[:page], :per_page => @per_page).order('last_name ASC')
end

index.html.erb

<div class="pull-right">
Records per page
<%= select_tag :per_page, options_for_select([10,25,50,100], params[:per_page].to_i),
:onchange => "if(this.value){window.location='?per_page='+this.value;}" %>
</div>

<%= page_entries_info @users %>

<br>
<div class="pull-right">
<%= will_paginate @users, renderer: BootstrapPagination::Rails %>
</div>

最佳答案

如果您使用的是 Rspec >= 3,请尝试以下操作:

 it "renders a list of users" do
allow(view).to receive_messages(:will_paginate => nil) # Add this

render

page = Capybara::Node::Simple.new(rendered)

expect(page).to have_content("Smith, Agent admin@somewhere.com Site Admin")
expect(page).to have_content("Johnson, Bob manager.email@elsewhere.com The Company Name")
end

关于ruby-on-rails - 数组 will_paginate rspec 的未定义方法 total_pages',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28368931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com