質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

742閲覧

楽天ブックス書籍検索APIの検索結果でページネーションをしたい

AK12

総合スコア32

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/09/03 07:13

検索結果は取得できているのですが、ページネーションを表示するための、
合計商品数が取得できません。
gemはkaminariを使用しています。

ご存知の方おられましたら、よろしくお願い致します。

books.controller

def new require 'rakuten_web_service' array = ['重松清'] #,'宮部みゆき','池井戸潤' randauthor = array[rand(array.length)] if params[:title].present? && params[:author].present? books = RakutenWebService::Books::Book.search(title: params[:title],author: params[:author]) elsif params[:title].present? books = RakutenWebService::Books::Book.search(title: params[:title]) elsif params[:author].present? books = RakutenWebService::Books::Book.search(author: params[:author]) else books = RakutenWebService::Books::Book.search(author: randauthor) end @books = [] books.each do |item| book = Book.find_or_initialize_by(isbn: item['isbn']) #アイテムにユニークなコードで探索 book.title = item['title'] #アイテムタイトル book.author = item['author'] #アイテムタイトル book.image_url = item['largeImageUrl'] book.publishername = item['publisherName'] @books << book end end

new.html.slim

.search = form_with url: new_book_path,method: :get,local: true do |f| = f.text_field :title, placeholder: "タイトルを入力", class: 'form-control' = f.text_field :author, placeholder: "作者で検索", class: 'form-control' .btn-parent = f.submit "書籍を検索", class: "btn btn-primary" -if @books.present? = render 'book', books: @books

試したこと

テストデータで検索した際に、countと書かれているところが取得できればいいのはわかるのですが、取得方法がわかりません。
上記コントローラーでbooksを取得後、デバッグでbooks.countと入れてはみたのですが、
1ページあたりの表示件数である30が返ってしまいました。

https://app.rakuten.co.jp/services/api/BooksBook/Search/20170404?format=json&author=%E9%87%8D%E6%9D%BE%E6%B8%85&booksGenreId=001004008&applicationId=1053124204230443746

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FKM

2019/09/03 08:32 編集

検索結果のデータは取得、テンプレートにきちんと表示されているのでしょうか?
guest

回答2

0

自己解決

本件、自己解決しました。

books.response["count"]とすることで、総数を取得でき、
ページネーションを作成できました。

ありがとうございました。

投稿2019/09/04 22:14

AK12

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

@booksが単なる配列だからだと思います。

@books = []

kaminariが返すページネーションが可能なオブジェクトを返すようにしてみてください。

投稿2019/09/03 07:22

devsx

総合スコア173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問