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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

Ruby on Rails

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

1277閲覧

GoogleBooksAPIから画像を取得したいです

kinakoo

総合スコア5

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

Ruby on Rails

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/06/25 01:22

編集2021/07/02 04:06

前提・実現したいこと

GoogleBooksAPIから画像を取得したいです。
本のタイトルと著者名は検索から取得することができるのですが、画像の取得の方法がわかりません。

該当のソースコード

books_controller.rb

rails

1class BooksController < ApplicationController 2 before_action :authenticate_user!, only: [:new, :create] 3 4 5 def new 6 @book = Book.new 7 8 if params[:keyword].present? 9 require 'net/http' 10 url = 'https://www.googleapis.com/books/v1/volumes?q=' 11 request = url + params[:keyword] 12 enc_str = URI.encode(request) 13 uri = URI.parse(enc_str) 14 json = Net::HTTP.get(uri) 15 @bookjson = JSON.parse(json) 16 17 count = 5 #検索結果に表示する数 18 @books = Array.new(count).map{Array.new(4)} 19 count.times do |x| 20 @books[x][0] = @bookjson.dig("items", x, "volumeInfo", "title") 21 @books[x][1] = @bookjson.dig("items", x, "volumeInfo", "imageLinks", "thumbnail") 22 @books[x][2] = @bookjson.dig("items", x, "volumeInfo", "authors") 23 @books[x][2] = @books[x][2].join(',') if @books[x][2] #複数著者をカンマで区切る 24 @books[x][3] = @bookjson.dig("items", x, "volumeInfo", "industryIdentifiers", 0, "identifier") 25 end 26 end 27 @title = params[:title] if params[:title].present? 28 @author = params[:author] if params[:author].present? 29 @img = params[:image] if params[:image].present? 30 end 31 32 33 34 private 35 def book_params 36 params.require(:book).permit(:title, :author, :learn, :about, :category, :overrall, :image) 37 end 38 39end 40

new.html.erb

rails

1<%= stylesheet_link_tag 'new', :media => "all" %> 2<br> 3<h2>入力フォーム</h2> 4<br> 5<div class="post-container"> 6 <h1>書籍の新規登録</h1> 7 <%= form_tag('booksearch', method: :get) do %> 8 <div class="input-group"> 9 <%= search_field_tag "keyword", params[:keyword], class: "form-control", placeholder: "キーワード検索" %> 10 <span class="input-group-btn"> 11 <%= submit_tag "検索", class: "btn btn-primary" %> 12 </span> 13 </div> 14 <% end %> 15 <h2>検索結果</h2> 16 <% if @books.present? %> 17 <% @books.each do |book| %> 18 <img src="<%= book[1] %>" width="40" vspace="2"> 19 <%= link_to book[0], controller: "books", action: "new", title: book[0], author: book[2], img: book[1] %> 20 <%= book[2] %> | 21 <% end %> 22 <% end %> 23 <br> 24 <br> 25 <%= form_with scope: :book, url: books_path, local: true do |form| %> 26 <%= form.label :本のタイトル %> 27 <%= form.text_field :title, class: 'form-control', value: "#{@title}" %> 28 <br> 29 <br> 30 <%= form.label :著者 %> 31 <%= form.text_field :author, class: 'form-control', value: "#{@author}" %> 32 <%= form.hidden_field :img, class: 'form-control', value: "#{@img}" %> 33 34 <% end %> 35 <%= link_to "本の一覧に戻る", books_path %> 36

試したこと

このサイト(GoogleBooksAPIとRailsでお手軽に書籍登録)を参考にGoogleBooksAPIを実装しました。公式ドキュメントに書かれていたimaagelinksが使えるのではないかと試行錯誤中です。

補足情報(FW/ツールのバージョンなど)

ruby 2.7.2p137
Rails 6.1.3.2

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

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

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

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

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

guest

回答1

0

自己解決

Bookモデルのmount_uploaderの記述を消したら表示されるようになりました。

投稿2021/09/09 22:26

kinakoo

総合スコア5

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問