select2 rails поиск по параметрам фильтра? - PullRequest
0 голосов
/ 18 мая 2018

Может быть, кто-то из вас, ребята, сможет помочь мне с этим.

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

, например:

У меня есть книга под названием «Властелин колец», которая относится к категории фэнтези.У меня также есть книжный повелитель семьи, которая принадлежит к категории семьи.когда я введу лорда в строке поиска, будут показаны оба заголовка, но я хочу иметь возможность выбрать категорию.

(я прочитал документацию по select2 и не смог найти ничего, чтопомог бы мне в этом.)

пример: категория выбрана = фэнтези

Я печатаю лорда, и будет показан только лорд колец.

Как мне этого добиться?

<!-- Search Widget -->
<div class="card my-auto">
  <%= form_with url: books_path , method: :get, local: true  do |f| %>
    <div class="card-body">
      <p>Search for a Book title.</p>
      <%= f.collection_select(:book_id, Book.all, :id, :title, {include_blank: 'Book titles'}, {class:'selectbooktitle form-control'}) %>
      <hr>
      <div class="input-group">
                <span class="input-group-btn">
                  <%= f.submit 'Search', class: 'btn btn-outline-success', method: :put %>
                </span>
      </div>
    </div>
    </div>
  <% end %>

book.rb

class Book < ApplicationRecord
  belongs_to :user
  belongs_to :category
  has_many :reviews, dependent: :destroy

  has_attached_file :book_cover, styles: { book_index: '250x350>', book_show: '325x475>' }
  validates_attachment_content_type :book_cover, content_type: /\Aimage\/.*\z/
end

books_controller

def index

    if params[:category].blank?
      @books = Book.all.order('created_at DESC')
    else
      @category_id = Category.find_by(name: params[:category]).id
      @books = Book.where(category_id: @category_id).order('created_at DESC')
    end
    return redirect_to book_path(params[:book_id]) if params[:book_id]
  end
...