Как заполнить диаграмму данными из базы данных?

#javascript #jquery #ruby-on-rails #coffeescript

#javascript #jquery #ruby-on-rails #coffeescript

Вопрос:

Я следую этому railscast, чтобы создать диаграмму данных. Он рекомендует мне сделать следующее:

orders.js

 jQuery ->
  Morris.Line
    element: 'orders_chart'
    data: $('#orders_chart').data('orders')
    xkey: 'purchased_at'
    ykeys: ['price', 'shipping_price', 'download_price']
    labels: ['Total Price', 'Shipping Price', 'Download Price']
    preUnits: '

А затем создайте элемент в представлении с таблицей также в представлении, которая заполняет график. Однако я бы хотел, чтобы данные были не  $('#orders_chart').data('orders')  данными, а данными непосредственно из базы данных, чтобы таблица не отображалась на веб-странице. Как мне это сделать?


Комментарии:

1. Чтобы сделать то, что вы хотите, вам нужно сделать ajax-запрос, после получения данных просто отправьте его Morris data: . В любом случае, я не понимаю, какую таблицу вы видите в представлении?

Ответ №1:

Шаг 1:

Задайте маршрут в своих файлах маршрутов, который предоставит вам данные json:

 get '/get_graph_data', to: 'graphs#data_show', as: 'get_graph_data', defaults: {format: 'json'}
 

Шаг 2:

Напишите свой контроллер

 class GraphsController
  def data_show
    get the json data
  end
end
 

Напишите запрос ajax get

 get_graph_data = ->
  url = (you can use a data-tag to get the url from your view)
  $.ajax
    type: 'get'
    url: url
    dataType: 'json'
    success: (json) ->
      send_data_to_morris or another method to change it if necessary
 

А затем создайте элемент в представлении с таблицей также в представлении, которая заполняет график. Однако я бы хотел, чтобы данные были не $('#orders_chart').data('orders') данными, а данными непосредственно из базы данных, чтобы таблица не отображалась на веб-странице. Как мне это сделать?

Комментарии:

1. Чтобы сделать то, что вы хотите, вам нужно сделать ajax-запрос, после получения данных просто отправьте его Morris data: . В любом случае, я не понимаю, какую таблицу вы видите в представлении?

Ответ №1:

Шаг 1:

Задайте маршрут в своих файлах маршрутов, который предоставит вам данные json:


Шаг 2:

Напишите свой контроллер


Напишите запрос ajax get