Окно расширенного поиска, не показывающее результаты или подключающееся к представлению «Показать» - PullRequest
0 голосов
/ 08 февраля 2019

Я довольно новичок в Ruby on Rails и пытаюсь реализовать расширенный поиск.Расширенный поиск - это поиск книг и их категорий.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Я реализовал расширенный поиск, новый вид и новый вид.

Но когда я пытаюсь искать книги, он не отображает результаты поиска и не отображает представление для поиска.Он скорее отображает новую страницу просмотра для расширенного поиска.

Вот мой код контроллера поисков

class SearchesController < ApplicationController
  def new
    @search = Search.new
  end

  def create
    @search = Search.create(search_params)
    redirect_to @search
  end

  def show
    @search = Search.find(params[:id])
  end

  private

  def search_params
    params.require(:search).permit(:keywords, :category)
  end
end

Вот мой код модели поиска

class Search < ApplicationRecord
  def search_books

    books = Book.all

    books = books.where(["name LIKE ?","%#{keywords}%"]) if 
      keywords.present?
    books = books.where(["category LIKE ?",category]) if 
      category.present?

 return books

 end
end

Вот мойSearches _form.html.erb Code

<%= form_with(model: search, local: true) do |form| %>
   <div class="form-group">
      <%= form.text_field :keywords, {placeholder: 'Keywords', 
      :class => 'form-control pb_height-50 reverse'} %>
  </div>

   <div class="form-group">
      <%= form.text_field :category, {placeholder: 'Category', 
      :class => 'form-control pb_height-50 reverse'} %>
   </div>

   <div class="form-group">
      <%= form.submit :class => 'btn btn-primary btn-lg btn-block 
       pb_btn-pill  btn-shadow-blue', value: 'Search'%>
   </div>

<% end %>

Вот мои поиски new.html.erb Code

<% content_for :title, "New Search" %>

 <section class="pb_cover_v3 overflow-hidden cover-bg-indigo cover- 
    bg-opacity text-left pb_gradient_v1 pb_slant-light menu-section" 
    id="section-home">

 </section>

 <section class="pb_section bg-light pb_slant-white pb_pb-250" 
   id="section-features">
  <div class="container">
    <div class="row align-items-center justify-content-center">
      <div class="col-md-12 relative align-self-center">

        <form action="/search" class="bg-white rounded pb_form_v1">
          <h2 class="mb-4 mt-0 text-center">Advanced Search</h2>
          <hr>

          <%= render 'form', search: @search %>

          <hr>
          <%= link_to 'Back', books_path %>
        </form>

       </div> 
      </div>
    </div>
 </section>

Вот мои поиски show.html.erb Code <% content_for: title, "Результат поиска"%>

   <section class="pb_cover_v3 overflow-hidden cover-bg-indigo 
     cover-bg-opacity text-left pb_gradient_v1 pb_slant-light menu- 
     section" id="section-home">

   </section>

  <section class="pb_section pb_slant-white pb_pb-250" id="section- 
  features">

    <div class="container">
      <div class="row titlerow">
        <h1><%= Search Result %></h1>
          <p><%= link_to 'Back', new_search_path %></p>

            <% if @search.search_books.empty? %>

              <p>No Records Found</p>

            <% else%>

               <% @search.search_books.each do |c| %>
                <br>

               <div class="div">
               <h1><%= c.name %></h1>
               <p>Category: <%=c.category %></p>

              </div>

             <% end %>

           <% end %>      
          </div>
        </div>
 </section>

Мне нужна помощь в том, как мои результаты поиска могут отображаться в представлении результатов поиска, вместо того, чтобы страница расширенного поиска повторно отображала новую страницу поиска.каждый раз, когда я нажимаю кнопку поиска в расширенном поиске.Мне нужен способ подключения представления «Показать расширенный поиск» к новой странице расширенного поиска, чтобы на нем могли отображаться результаты поиска.

Спасибо.

1 Ответ

0 голосов
/ 08 марта 2019

Мне удалось это исправить.

На new.html.erb

<section class="pb_section bg-light pb_slant-white pb_pb-250" id="section-features">
      <div class="container">
        <div class="row align-items-center justify-content-center">
          <div class="col-md-12 relative align-self-center">

            <form action="/search" class="bg-white rounded pb_form_v1">
              <h2 class="mb-4 mt-0 text-center">Advanced Search</h2>
              <hr>

              <%= render 'form', search: @search %>

              <hr>
              <%= link_to 'Back', books_path %>
            </form>

          </div> 
        </div>
      </div>
</section>

Я просто изменил тег form на тег div , а также удалил атрибут action из тега формы.

Я многому научился в процессе.

Вот и все.

Надеюсь, это поможет

...