Wie man einen Kategoriefilter für searchkick implementiert. Grundsätzlich habe ich ein Eingabefeld, das den Suchbegriff verwendet, aber ich möchte auch eine Dropdown-Liste, die Benutzer eine Kategorie auswählen können, um in ALLEN Kategorien zu suchen oder zu suchen. Es gibt eine viele-zu-viele-Beziehung zwischen den Pfosten und KategorienRails 4 searchkick mit vielen-zu-vielen relationsip
Meine Modelle sind:
-- post.rb
class Post < ActiveRecord::Base
has_many :post_categories
has_many :categories, through: :post_categories
searchkick text_start: [:title]
end
-- category.rb
class Category < ActiveRecord::Base
has_many :post_categories
has_many :posts, through: :post_categories
end
--post_category.rb
class PostCategory < ActiveRecord::Base
belongs_to :post
belongs_to :category
end
Jetzt in meinem posts_controller Index Aktion, ich habe die folgenden, die durch Rücksendung alle Beiträge bisher funktioniert, die passen der Abfrageparameter oder gibt alle Beiträge zurück, wenn in der Sucheingabe kein Abfrageparameter angegeben ist.
class PostsController < ApplicationController
def index
query = params[:q].presence || "*"
@posts = Post.search (query)
end
end
Dies funktioniert bisher gut. Ich möchte aber auch einen Kategoriefilter in der Ansicht hinzufügen, so dass der Benutzer wählen kann, ob er innerhalb einer bestimmten Kategorie nach der Abfragezeichenfolge suchen oder in allen Kategorien suchen möchte, wenn keine Kategorie ausgewählt ist. Danke im Voraus.
Haben Sie versucht, sich selbst eine Kategorie auswählen, hinzufügen? –