###作業について
YoutubeAPIを使って、動画の検索→結果の表示ができるようにしたいです。
Controllerの方で、
controller
1 2results.items.each do |item| 3 id = item.id 4 snippet = item.snippet 5 video_id = id.video_id 6 video_title = snippet.title 7 channel_title = snippet.channel_title 8 thumbnail_url= snippet.thumbnails.medium.url 9 10 videos << [video_id, video_title, channel_title, thumbnail_url] 11end
上記のように、検索結果から取得したい情報だけをもつ配列 videos を用意し、
Viewでその内容を表示します。
###エラー
Viewの方で
html
1<% videos.each do |video| %> 2 <p><%= video %></p> 3<% end %>
上記のように、配列を表示させると、検索結果が文字列として表示されるのですが、
その要素のみ表示させたくて、
html
1<% videos.each do |video| %> 2 <p><%= video.video_id %></p> 3<% end %>
とすると
undefined method `video_id' for #<Array:0x00007f44b924cf20>
というエラーが表示されてしまいます。
###自分で調べた結果
配列の要素を取得する手段として、「何番目の要素かを指定すれば取得できる」ということがわかりました。
そこで、
html
1<% videos.each do |video| %> 2 <p><%= video.first %></p> 3<% end %>
と変更すると、無事に video_id だけ表示させることができました。
しかし、この方法ですと、コードを読んだときに何の情報を取得しているかが分かりにくくなってしまいます。
###質問
・Controllerで用意した配列から、HTMLで要素だけ取得する
・何の情報を取得しているかを分かりやすくする
上記の2点を実現する改善方法について、ご存知の方がいらっしゃいましたら、
お教えいただけると幸いです。
拙い説明であり恐縮ですが、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/08 04:23