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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Ruby on Rails

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

Q&A

解決済

2回答

811閲覧

JSONのデータをRailsで取得して画像を表示させたい

Kassy11

総合スコア26

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Ruby on Rails

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

0グッド

0クリップ

投稿2019/04/28 11:52

編集2019/04/28 15:38

Spotify APIのgemであるRSpotifyを使って、アーティスト名を検索し、検索結果を表示させるものを実装しています。
以下のindex.html.erbの、<%=artist.name%>と同様にしてアーティストの画像も取得したいです。
どのように画像を表示すればいいでしょうか??

musics_controller

1class MusicsController < ApplicationController 2 require 'rspotify' 3 RSpotify.authenticate(" ", " ") 4 5 def search 6 end 7 8 def index 9 @artists = RSpotify::Artist.search(params[:search]) 10 end 11end

search

1<h3>アーティスト名で検索</h3> 2 3 <%= form_tag(controller:"musics",action:"index") do %> 4 <%= text_field_tag :search %> 5 <%= submit_tag 'Search',:name => nil %> 6 <% end %> 7

index

1<% @artists.each do |artist| %> 2 <h4><%= artist.name %></h4> 3<% end %>

ちなみに、<%=arsiti.images%>で表示してみると、以下のようになります。
これのurlを取得してimage_tagに引数として与えたいです。

[{"height"=>640, "url"=>"https://i.scdn.co/image/2a8c10fe954e2038fb74251cba601a5594cc5878", "width"=>640}, {"height"=>320, "url"=>"https://i.scdn.co/image/87d18c79bbfdb1905bb202d200e1c191afc46aa5", "width"=>320}, {"height"=>160, "url"=>"https://i.scdn.co/image/b4d024ebb4863438b92a1b029bff7f9737263a57", "width"=>160}] [{"height"=>640, "url"=>"https://i.scdn.co/image/91330ce6df5635ffcf65f2d1e312f7585af6e2e4", "width"=>640}, {"height"=>300, "url"=>"https://i.scdn.co/image/717b5440157eeef9c7e910621e1754bc10b0a565", "width"=>300}, {"height"=>64, "url"=>"https://i.scdn.co/image/9dbc4d36937d01388ad522f3c3b7c1414089608e", "width"=>64}] [{"height"=>640, "url"=>"https://i.scdn.co/image/60707b57e4f50c3506042528692f0d85f0f3a0c3", "width"=>640}, {"height"=>300, "url"=>"https://i.scdn.co/image/09ba248ec74bad1922095a11898f4cb2afebb226", "width"=>300}, {"height"=>64, "url"=>"https://i.scdn.co/image/cea55dfa69bda3eccf4d4163c2c1ffb93cead5d8", "width"=>64}] [{"height"=>640, "url"=>"https://i.scdn.co/image/429bc8d84d6a41845a12946949b25e18a2ced4fd", "width"=>640}, {"height"=>300, "url"=>"https://i.scdn.co/image/babfb7cae54da34810119c5c1d92206bf32beb20", "width"=>300}, {"height"=>64, "url"=>"https://i.scdn.co/image/d7773b4c677f9ee5f9ec4e56c725a50fce47af33", "width"=>64}]

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

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

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

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

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

guest

回答2

0

自己解決

<% @artists.each do |artist| %> <h4><%= artist.name %></h4> <%image = artist.images[1]%> <%= image_tag(image["url"])%> <% end %>

Rubyの配列とハッシュの取得方法を考えれると解決しました。

投稿2019/04/29 06:35

Kassy11

総合スコア26

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

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

0

  • リストビューファイルに

ruby

1<%= image_tag('https://i.scdn.co/image/2a8c10fe954e2038fb74251cba601a5594cc5878') %>

と記載したところ、二人の男性が写った白黒の画像を表示できました。
情報はcontrollerから上手く渡してあげましょう。

ruby

1# controller 2def index 3 @artists = RSpotify::Artist.search(params[:search]) 4 @url = 'https://i.scdn.co/image/2a8c10fe954e2038fb74251cba601a5594cc5878' 5end 6 7# index.html.erb 8<% @artists.each do |artist| %> 9 <h4><%= artist.name %></h4> 10 <%= artist.images%> 11<% end %> 12<%= image_tag(@url) %>

とりあえず試験的にこれで表示することはできると思います。
あとはどうプログラムすればきれいに全部表示できるかを考えるとよいでしょう。

サイズなどのオプションについては、私はいつもこのサイトを頼りにしています。
Railsドキュメント

追記

ruby

1# index.html.haml 2<% @artists.each do |artist| %> 3 <h4><%= artist.name %></h4> 4 <%= artist.images.each do |image| %> 5 <%= image_tag(image['url']) %> 6 <% end %> 7<% end %>

投稿2019/04/28 14:15

編集2019/04/28 16:08
siruku6

総合スコア1382

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

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

Kassy11

2019/04/28 14:28

それでは一つの画像が複数表示されるだけなので、複数の検索結果についてのそれぞれのurlを画像表示させたいです。
siruku6

2019/04/28 14:42

その質問に回答するためには情報が少なすぎるような気がします。 ソースコードの3つ目の情報は、いったい他のソースコードのどこでどうやって取得できるのでしょうか?
Kassy11

2019/04/28 15:38

ソースコードの記載を変更させていただきました。
siruku6

2019/04/28 16:07 編集

確認させていただきました! 実際に動作させてみないと何とも言えないのですが、viewファイルを以下のように記載してみてはいかがでしょうか。 <% @artists.each do |artist| %> <h4><%= artist.name %></h4> <%= artist.images.each do |image| %> <%= image_tag(image['url']) %> <% end %> <% end %> 画像が大きすぎてしまうかもしれませんが。 ※インデントがなくなって見にくいので、回答の中に追記します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問