【发布时间】:2014-06-21 22:40:54
【问题描述】:
我正在学习 ROR(目前 5 个月以上),并且正在尝试将 Postgres 数据库中的数据导入 Highcharts。 Postgres 表包含 :id、:name 和 :pc1 的列——这是一年的百分比变化——(以及其他)。数据库中有五个时间序列[:id]。
这是数据库架构:
create_table "series", force: true do |t|
t.string "acronym"
t.string "name"
t.string "current"
t.string "previous"
t.string "pc1"
t.datetime "created_at"
t.datetime "updated_at"
end
这是系列控制器的一部分:
class SeriesController < ApplicationController
before_action :set_series, only: [:show, :edit, :update, :destroy]
# GET /series
# GET /series.json
def index
@series = Series.all
end
def percent
@series.each do |series|
series.name
series.pc1
end
render :json
end
我正在定义一种方法 - “百分比” - 因为我想创建几个不同的图表,例如,一个用于同比百分比变化(这个)以及以前与当前的变化。
这是 Highcharts 脚本的视图:
或多或少遵循 Highcharts 的说明(此处为:http://www.highcharts.com/docs/working-with-data/preprocessing-data-from-a-database),我从 Highcharts 函数中提取了“数据”请求。原始的 Highcharts 演示代码 - 使用嵌入式“硬编码”数组 - 在这里:http://www.highcharts.com/docs/getting-started/your-first-chart 如果我在调用函数之前将其声明为变量,我假设我应该删除该系列。我忽略了示例中的 php,因为我应该从控制器以 json 格式呈现系列。
<div>
<script>
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
series: [{
// I pulled local host out of here because Stackoverflow doesn't like it
var url = "";
$.getJSON(url, function(resp) {
options.series[0].name = name;
options.series[0].pc1 = pc1;
var chart = new Highcharts.Chart(options);
});
pointStart: 0,
pointInterval
}]
});
$(function () {
$('#container').highcharts({
chart: {
type: 'bar'
},
title: {
text: 'Fruit Consumption'
},
xAxis: {
categories: ['Apples', 'Bananas', 'Oranges']
},
yAxis: {
title: {
text: 'Fruit eaten'
}
},
});
});
</script>
</div>
这是模型:
class Series < ActiveRecord::Base
has_many :series
end
我认为我有多个问题:
- 我是否在控制器中正确渲染了 json?
- 我应该调用脚本中的 url 还是文件(因为我使用的是 localhost 服务器)?
- 我怀疑还有其他方法,例如,百分比方法是否应该在控制器的 before 操作中?
控制台中的错误是这一行:var url = "http://localhost:3000/series";我尝试了多种变体,包括 /series 和文件路径。
我的环境已设置好(使用带有 Mavericks 的 Apple Mac)。我使用终端应用程序运行 rails 服务器、Postgres 在单独的选项卡中运行、Sublime Text 版本 2 和 Chrome。
【问题讨论】:
标签: javascript ruby-on-rails json postgresql highcharts