Ошибка запроса GET (Ruby on Rails с Angular)

0

Я очень новичок в веб-разработке, и, возможно, это глупая ошибка, но я не могу найти подходящую документацию для этого.

Я работаю над проектом с RoR и угловым: онлайн-каталог для автозапчастей, где пользователь может фильтровать продукты, предоставляя определенную информацию (бренд, модель, год и т.д.).

Я уже подключил базу данных компании к RoR, имею модель и контроллер (у которого есть "выбор" запроса к базе данных) и может консультироваться с консолью рельсов. У меня есть угловая фабрика и контроллер, который подключен к контроллеру рубина, и я могу распечатать информацию базы данных в угловом режиме.

Проблема в том, что когда я пытаюсь передать параметры для определенного поиска, я получаю внутреннюю ошибку сервера GET 500.

Возможно, я делаю что-то неправильно, так как я начинаю учиться. Технически я пытаюсь обновить представление, чтобы показать информацию, основанную на параметрах контроллера, заданных пользователем. Я оставлю несколько скриншотов для понимания.

Мой угловой модуль с фабрикой и контроллером

angular.module('AppAutored', ['ngResource','ui.router', 'ui.bootstrap'])

    .factory("Product", function($resource) {
      return $resource("products/:id/:marca/:modelo/:anhio", { id: '@id', marca: '@marca', modelo: '@modelo', anhio: '@anhio'}, {
        index:   { method: 'GET', isArray: true, responseType: 'json' }
      });
    })

    .controller('MainCtrl', [
        '$scope',
        'Product',
        function($scope, Product) {
            $scope.getProducts = function () {
                $scope.products = Product.index({id: $scope.model_codigo});
            }

            $scope.clear =function(){
                $scope.filtro = {};
            };
        }
    ]);

Модель Rails для таблицы "товары"

class Product < ActiveRecord::Base
   #has_one :lineasprod
   self.table_name = "productos"
end

Контроллер Rails, где я делаю выбор в базе данных (и пытаюсь поймать параметры из углового контроллера (: codigo) и, где я предполагаю, является ошибкой.

class ProductsController < ApplicationController
respond_to :json

def index
@products = Product.select("productos.cod_prod, lp.nombre as linea,              se.nombre as sistema, me.nombre as marca, mode.nombre as modelo, ae.año_equipos as anhio")
                   .where("productos.cod_prod = '(params[:codigo])' AND me.nombre = 'Honda' AND mode.nombre LIKE '%Accord%' AND pe.año_equipos = '2007'")
                   .joins("INNER JOIN lineas_productos  lp   ON lp.linea_producto  = productos.linea_producto
                           INNER JOIN sistemas_equipos  se   ON se.sistema_equipos = productos.sistema_equipos 
                           INNER JOIN productos_equipos pe   ON pe.cod_prod        = productos.cod_prod 
                           INNER JOIN marcas_equipos    me   ON me.marca_equipos   = pe.marca_equipos   
                           INNER JOIN modelos_equipos   mode ON pe.marca_equipos   = mode.marca_equipos AND mode.modelo_equipos = pe.modelo_equipos
                           INNER JOIN años_equipos      ae   ON pe.año_equipos     = ae.año_equipos")
                   .first(250)
respond_with(@products)
end

end

файл маршрутов

Rails.application.routes.draw do

resources :products, defaults: { format: 'json' }
root to: 'application#angular'

#get 'index/products/:codigo' => "products#index"

контроллер приложения

class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception

respond_to :json

def angular
  render 'products/index'
end

def show
  render 'products/index'
end


def set_csrf_cookie_for_ng
  cookies['XSRF-TOKEN'] = form_authenticity_token if protect_against_forgery?
end

protected

def verified_request?
  super || valid_authenticity_token?(session, request.headers['X-XSRF-TOKEN'])
end

end

Ошибка, которую я получаю при попытке поиска идентификатора: Изображение 174551

  • 0
    У вас есть app/views/products/index.html.erb ?
  • 0
    Извините, это должен быть app/views/products/index.jbuilder
Показать ещё 5 комментариев

1 ответ

0

Я думаю, что вы хотите:

class ProductsController < ApplicationController
  respond_to :json

  def index
    @products = Product.select(...)
    render json: @products
  end

end
  • 0
    Уже пробовал и остается прежним

Ещё вопросы

Сообщество Overcoder
Наверх
Меню