AngularJS запрос направляющих рельсов

0

Я только начал изучать AngularJS, интегрированный с бэкэндом Rails. Я запутался в том, где принадлежит область логики запросов.

У меня есть простой блог со списком сообщений и двумя ссылками, которые должны сортировать сообщения по "новейшим" и "самым проголосовавшим".

С угловым, где эта логика масштаба? Я вижу, что есть опция "фильтр" на ng-repeat, но кажется неэффективным запрашивать Post.all в моем действии индекса, если есть тысячи сообщений, а затем использовать фильтр, чтобы показать 10 самых популярных?

Я был бы признателен за простое объяснение того, что должно произойти с точки зрения пользователя, нажимающего "самую проголосовавшую ссылку", чтобы взаимодействовать с внутренним API, чтобы правильно охватить запрос.

1 ответ

0

Я бы добавил параметр order_by в запрос PostsController. Используя этот параметр, вы можете решить, как упорядочить сообщения, полученные из базы данных, и отправить затем обратно в угловое.

Стоит отметить две вещи:

  1. Не используйте Post.all потому что он неэффективен для извлечения всех записей в приложение и, что еще хуже, для отправки их всем клиенту. Используйте разбивку на страницы: выберите определенное количество сообщений. Вы можете легко добавить разбиение на страницы, используя драгоценные камни, такие как kaminari или will_paginate

  2. Помните, что нельзя Post.order() значение params[:order_by] непосредственно как аргумент Post.order(), потому что это может вызвать SQL-инъекцию. Он упоминается в этом Railscast

Ещё вопросы

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