Проблема обновления Ruby на рельсах после отправки формы - PullRequest
0 голосов
/ 08 мая 2020

У меня есть переменная экземпляра, созданная после нажатия кнопки поиска и выполнения 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 не отображается в представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...