尝试将Will_paginate gem实现到我的rails应用程序中,收到错误 #的未定义方法`paginate'。 使用gem'will_paginate','〜> 3.0'
已将gem添加到我的gemfile并搜索controller.rb文件
class SearchController < ApplicationController
def Home
access_token = ENV["ACCESS_TOKEN"]
client = Instagram.client(access_token: access_token)
default_search = client.tag_search('pizza')
if params[:q]
search_query = client.tag_search(params[:q])
@tag = search_query.present? ? search_query : default_search
else
@tag = default_search
end
@tag = @tag.first.name
@results = client.tag_recent_media(@tag)**.paginate(:page => params[:page], :per_page => 4)**
end
def about
end
end
并添加到主页,以显示页码
<form action="?" method="get">
<input type="text" name="q" placeholder="Search Instagram photos..." autofocus/>
</form>
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Welcome //
<small>It's Nice to Meet You!</small>
</h1>
</div>
<div class="row">
<% @results.each do |instagram| %>
<div class="col-md-3">
<%= image_tag instagram.images.low_resolution.url %>
</div>
<% end %>
</div>
<%= will_paginate @results %>
<br/>
答案 0 :(得分:1)
will_paginate
只知道如何对开箱即用的ActiveRecord查询(以及可选的数组)进行分页。
虽然它不知道如何对任意apis进行分页。您可以使用WillPaginate::Collection
来包装任何数据,但它看起来不像Instagram api非常适合这样:paginate会假设您可以跳到任意偏移,而不能使用api。 Instagram api不允许你这样做 - 你必须指定最大ID,你不知道除了下一页的结果之外会是什么。
简而言之,看起来你可以在Instagram api上合理地使用will_paginate