为什么 Pagy return 在 Sinatra 中为 nil?

Why does Pagy return nil in Sinatra?

在我看来,

@pagy 正在返回 nil (#<NoMethodError: undefined method 'pages' for nil:NilClass>)。

它在控制台中按预期工作:

> @pagy.pages
=> 25
> pagy_nav(@pagy)
=> "<nav class=\"pagy-nav pagination\"...

我已经在文件夹控制器中添加了 Pagy 包含:

class FoldersController < ApplicationController
  include Pagy::Backend

  get '/folder/:permalink' do
    @pagy, @pagination = pagy(Article.all)
  end

  helpers do
    include Pagy::Frontend
  end

end

我在文件夹的显示视图中调用它:

<%= pagy_nav(@pagy) if @pagy.pages > 1 %>

知道为什么 @pagy 在视图中返回 nil 吗?

关于在 Sinatra 应用程序中使用 Pagy 有什么建议吗?

@pagy 需要在 之前 您的 erb 呼叫。

像这样:

@pagy, @articles = pagy(@articles.order(position: :desc), items: 50)
erb :'folders/show_folder'

不是这样的:

erb :'folders/show_folder'
@pagy, @articles = pagy(@articles.order(position: :desc), items: 50)