###Tmdb_apiを使って映画の検索機能を実装したいのですが、以下のように記入しても検索結果が表示されません。
検索フォームはviews/movies/new.html.erbで検索結果はviews/movies/_movies.html.erbに記述しているのですがターミナルを見るとnew.html.erbに返ってきていて_movies.html.erbが表示できていないか、データが取得できていないのかもしれません。改善点をお願いいたします。
movies_controller.rb
1class MoviesController < ApplicationController 2 def new 3 @movies = [] 4 5 @keyword = params[:keyword] 6 if @keyword.present? 7 results = Tmdb::Search.movie( 8 @keyword, 9 page: 1 10 ) 11 12 results.each do |result| 13 movie = Movie.new(read(result)) 14 @movies << movie 15 end 16 end 17 end 18 19 private 20 21 def read(result) 22 code = result['id'] 23 name = result['title'] 24 image_url = result['poster_path'] 25 26 { 27 code: code, 28 name: name, 29 image_url: image_url 30 } 31 end 32end
<div class="search"> <div class="row"> <div class="text-center"> <%= form_tag(new_movie_path, method: :get, class: 'form-inline') do %> <div class="form-group"> <%= text_field_tag :keyword, @keyword, class: 'form-control input-lg', placeholder: "キーワードを入力", size: 40 %> </div> <%= submit_tag '検索', class: 'btn btn-success btn-lg' %> <% end %> </div> </div> </div> <%= render 'movies', movies: @movies %>
movielist/views/movies/_movies.html.erb
1<% if movies %> 2 3 <div class="row"> 4 5 <% movies.each do |movie| %> 6 7 <div class="movie"> 8 <div class="col-md-3 col-sm-4 col-xs-12"> 9 <div class="panel panel-default"> 10 <div class="panel-heading text-center"> 11 <img src="<%= movie.image_url %>" alt=""> 12 </div> 13 14 <div class="panel-body"> 15 <p class="movie-title"><%= movie.name %></p> 16 </div> 17 </div> 18 </div> 19 </div> 20 21 <% end %> 22 </div> 23<% end %>
あなたの回答
tips
プレビュー