Ich bin ziemlich neu in Schienen und bin den Aufbau eines Online-Shops. Ich habe momentan ein Produktmodell und ein Kategorienmodell mit der Assoziation: Produkte gehören zu einer Kategorie und eine Kategorie hat viele Produkte. Ich möchte, dass Käufer eine Kategorie in einem Dropdown-Menü auswählen können und die Produkte auf der Indexseite nur Artikel in dieser Kategorie anzeigen.Drop-Down-Filter zu sortieren Produkte nach Kategorie auf Index-Seite
konnte ich unten einen Tropfen bekommen alle Kategorien zu zeigen eine form_tag verwenden, aber wenn ich auf eine Kategorie auswählen filtern die Index-Seite nicht nur um diese Kategorie zu zeigen. index.html.erb
Produkte:
<%= form_tag('products', :remote => true) do %>
<%= select_tag "category", options_from_collection_for_select(Category.all, "id", "name"), { :include_blank => true , :class => "product_select"} %>
<%= submit_tag 'Filter' %>
<% end %>
Produkte Controller:
def index
if Product.all.collect == (params[:category])
@products= Product.send(params[:category])
else
@products = Product.order(:title)
end
respond_to do |format|
format.html # index.html.erb
format.js # index.js.erb
format.json { render json: @products }
end
end
application.js:
$(document).ready -> $(".product_select").on "change", ->
$.ajax
url: "/products"
type: "GET"
dataType: "script"
data:
dept_type: $(".product_select").val()
Vielen Dank im Voraus für jede Hilfe, lassen Sie mich wissen, wenn Weitere Informationen sind erforderlich.
Ich denke, Ihr Code geht immer auf dem gefilterten ersetzen ** sonst ** Bedingung für den Index – Lymuel
Sie können einige Eingaben aus dem OP-Code in dieser Frage erhalten: http://stackoverflow.com/questions/36676443/rails-ajax-display-products-by-chosen-filters/36712930 # 36712930 –