使用Kaminari查看规范失败

时间:2018-03-22 00:54:49

标签: ruby-on-rails ruby rspec kaminari

代码适用于localhost,但视图规范失败,我无法弄清楚原因。

在视图中我有:

<%= paginate events %>

在控制器中我有:

expose(:events) { @events }

def method
  @cat_ids = event_categories.collect(&:id)
  page = params[:page] || 1
  per = params[:per] || 4
  @events = Event.order(:start).where(event_category_id: [@cat_ids])
                 .where('start >= ?', Date.today)
                 .where(workflow_state: 'live')
                 .page(page).per(per)
end

在视图规范中,我尝试了人们在之前的类似问题上提出的所有不同方法,但没有一种方法有效。我们正在使用FactoryBot。

以下是我尝试过的一些事情:

  before do
    view_allow some_events
    allow(view).to receive(:page).and_return(1)
    allow(some_events).to receive(:current_page).and_return(1)
    allow(some_events).to receive(:total_pages).and_return(2)
  end

我根据上述内容收到的错误消息如下:

Failure/Error: <%= paginate events %>

     ActionView::Template::Error:
       undefined method `total_pages' for #<Event…

ActionView::Template::Error:
       No route matches {:controller=>"events", :page=>nil}

undefined method `current_page' for #<Event

如果您需要查看我的更多代码,请告诉我,因为我对此仍然很陌生。

0 个答案:

没有答案