Я хочу добавить поле поиска AJAX в свое приложение, используя этот учебник: http://www.rymcmahon.com/articles/11
Все работает хорошо, кроме поля поиска JS. Это не работает вообще.
Ошибки в моей терминальной консоли:
ActionView :: MissingTemplate (Отсутствует шаблон товаров / результатов поиска,
application / search-results с {: locale => [: en],: format => [: js,
: html],: варианты => [],: обработчики => [: raw,: erb,: html,: builder,: ruby,
: jbuilder,: haml]
Консоль JS в Chrome
Рельсы-ujs.self-8944eaf3f9a2615ce7c830a810ed630e296633063af8bb7441d5702fbe3ea597.js тело = 1: 189
ПОЛУЧИТЬ
http://localhost:3000/products?utf8=%E2%9C%93&search=PKP&commit=search
500 (внутренняя ошибка сервера)
У меня есть турболинки v.5 и рельсы 5.1.6.
драгоценный камень 'turbolinks', '~> 5'
драгоценный камень 'jquery-rails'
драгоценный камень 'rails', '~> 5.1.6'
Это как этот файл не может быть найден:
/ продукция / _search-results.js.rb
$("#product_table").hide();
$("#search-results").html("<%= escape_javascript(render :partial =>'results') %>");
Должен ли я добавить несколько маршрутов для этого? Спасибо за совет.
На всякий случай я добавлю другие файлы:
Мой метод индекса:
class ProductsController < ApplicationController
def index
if params[:search]
@search_results_products = Product.options_sortable(params)
respond_to do |format|
format.js {render "search-results"}
format.html
end
else
@products = Product.all.paginate(:page =>params[:page], :per_page => 20)
end
end.....
index.html.haml:
.container-fluid
%h2.center
=link_to "Create New Product", new_product_path
=render 'search_products'
%br
%h1.center List of all the Products
#product-table
=render 'table_products'
#search-results
.col-lg-2.offset-md-5
=will_paginate(@product)
Я поставлю здесь другой файлер.
_table.products:
.col-md-8.offset-md-2
%table.frame
%thread
%tr.h2
%th
=link_to "Name", sort: "product_name"
%th
=link_to "Description", sort: "description"
%th Order Name
%th options
%tbody
-@products.each do |product|
%tr
%th.h4
=product.product_name
%th
=product.description
%th
=product.order.name
-if product.order.user == current_user
%th
=link_to 'edit', edit_product_path(product)
||
=link_to 'delete', product_path(product),
remote: true,
method: :delete,
data: { confirm: 'Are you sure?'}
-else
%th
no permission
* * _Results.html.haml тысяча сорок-девять
.col-md-8.offset-md-2
%table.frame
%thread
%tr.h2
%th
=link_to "Name", sort: "product_name"
%th
=link_to "Description", sort: "description"
%th Order Name
%th options
%tbody
-@search_results_products.each do |product|
%tr
%th.h4
=product.product_name
%th
=product.description
%th
=product.order.name
-if product.order.user == current_user
%th
=link_to 'edit', edit_product_path(product)
||
=link_to 'delete', product_path(product),
remote: true,
method: :delete,
data: { confirm: 'Are you sure?'}
-else
%th
no permission
и _search_products.html.haml
.col-lg-4.offset-md-4
=form_tag(products_path, :method => "get", remote: true) do
.form-group.form-control-md
=text_field_tag :search, params[:search], placeholder: 'Enter search text'
=submit_tag 'search', class: "btn"