У меня есть переменная экземпляра, созданная после нажатия кнопки поиска и выполнения HTTP-запроса. Результат помещается в переменную экземпляра @albums
.
Я хочу показать результаты в форме поиска. Код ниже:
новый. html .erb
<h1>New Album</h1>
<h4>Search for Album</h4>
<%= form_with(url: "/albums/search", method: "get") do |f| %>
<%= f.label(:q, "Search for: ") %>
<%= f.text_field(:q, value: @search_query) %>
<%= f.submit("Search") %>
<% end %>
<% if @albums %>
<table>
<thead>
<tr>
<th>Image</th>
<th>Artist</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<% @albums.each do |album| %>
<tr>
<td><%= tag.img src: album.image_url, alt: "Cover art for #{album.title}" %></td>
<td><%= album.artist %></td>
<td><%= album.title %></td>
</tr>
<% end %>
</tbody>
</table>
<% elsif @search_query.present? %>
<p>No results to display :(</p>
<% end %>
<h4>Test</h4>
album_controller.rb
class AlbumsController < ApplicationController
def new
puts "the new method was just called"
end
def search
puts "inside search method"
audio_scrobbler = AudioScrobblerSearch.new
@search_query = params[:q]
if @search_query
@albums = audio_scrobbler.perform(@search_query)
#test to make sure isnt null, will delete later
@albums.each do |album|
puts album.inspect
puts
end
render 'new'
end
end
end
routes.rb
Rails.application.routes.draw do
get 'welcome/index'
get "albums/search" #search route in new.html.erb
resources :albums
root 'welcome#index'
end
Моя проблема в том, что после нажатия кнопки поиска и выполнения поиска сегмент <% if @ albums %> ...etc
не отображается в представлении.