Я довольно новичок в рельсах и создаю интернет-магазин. В настоящее время у меня есть модель продуктов и модель категорий с ассоциацией: Продукты принадлежат к категории и категории has_many. Я хотел бы, чтобы покупатели имели возможность выбрать категорию в раскрывающемся списке, а продукты на индексной странице будут отображать только элементы этой категории.Выпадающий фильтр для сортировки товаров по категориям на индексной странице
Мне удалось получить раскрывающееся меню, чтобы показать все категории, используя form_tag, но когда я выбираю категорию, страница индекса не фильтрует, чтобы показывать только эту категорию.
Продукты index.html.erb:
<%= 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 %>
Продукты контроллер:
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()
Заранее спасибо за любую помощь, дайте мне знать, если требуется больше информации.
Я думаю, что ваш код всегда идет на свой контекстуальный ** else ** условие по индексу – Lymuel
вы можете получить некоторые входы от кода OP в этом вопросе: http://stackoverflow.com/questions/36676443/rails-ajax-display-products-by-chosen-filters/36712930 # 36712930 –