Я рендеринг каталога товаров с использованием AJAX. Коллекции имеют подкатегории, чьи продукты отображаются как частичные AJAX. Я пытался ссылаться на эти страницы из других частей сайта через обычные ссылки (без remote: true) и, очевидно, это не сработало, поскольку действие show в моем контроллере подкатегорий отвечало только на js.
Я попытался решить эту проблему, добавив format.html в контроллер подкатегорий и создав файл show.html.erb в дополнение к _show.html.erb и show.js.erb. Подкатегории / шоу точно такие же, как коллекции / шоу, и ссылки AJAX работают нормально. Но он выводит партиалы других подкатегорий из одного URL, что выглядит запутанно, а также повторяет много кода.
Есть ли способ, с помощью которого я могу ссылаться на страницу коллекции из других частей сайта и частично отображать правильные подкатегории? Как лучше всего справиться с такой ситуацией?
subcategories_controller.rb
def show
@subcategory = Subcategory.friendly.find(params[:id])
@collection = @subcategory.collection
respond_to do |format|
format.js
format.html
end
end
коллекция / show.html.erb
<% @collection.subcategories.each do |subcategory| %>
<%= link_to subcategory.name, [collection, subcategory], remote: true %>
<% end %>
<div class="product-grid">
</div>
подкатегории / show.js.erb
document.querySelector(".product-grid").innerHTML = "<%= escape_javascript(render partial: 'show', locals: { subcategory: @subcategory } ) %>";
подкатегории / show.html.erb
<!-- same as collections/show.html.erb !-->