gpt4 book ai didi

javascript - 从 Postgres 以 ROR 的 JSON 格式获取数据到 Highcharts javascript

转载 作者:行者123 更新时间:2023-11-29 12:27:26 25 4
gpt4 key购买 nike

我正在学习 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

这是系列 Controller 的一部分:

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 脚本的 View :

或多或少按照 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,因为我应该从 Controller 以 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

我认为我有多个问题:

  1. 我是否在 Controller 中正确呈现 json?
  2. 我应该调用脚本中的 url 还是文件中的 url(因为我使用的是本地主机服务器)?
  3. 我怀疑还有其他方法,例如,percent 方法是否应该在 Controller 的 before action 中?

控制台中的错误是这一行:var url = "http://localhost:3000/series ";我尝试了多种变体,包括/series 和文件路径。

我的环境已设置(使用装有 Mavericks 的 Apple Mac)。我在运行 Rails 服务器、在单独的选项卡中运行 Postgres、Sublime Text 版本 2 和 Chrome 的情况下使用终端应用程序。

最佳答案

1。我是否在 Controller 中正确呈现 json?

我不这么认为。我也会发送一个状态,你需要告诉它是什么 json。所以我想:

def percent
@series.each do |series|
series.name
series.pc1
end
render status: 200, json: @series.as_json
end

2。我应该在脚本或文件中调用 url(因为我使用的是本地主机服务器)?

一个网址,永远是一个网址。您将无法访问文件。你的网址似乎是正确的。

3。我怀疑还有其他方法,例如,percent 方法是否应该在 Controller 的 before action 中?

这取决于你在做什么。如果你想通过调用/seriesroute 来响应percent 方法生成的json,你需要在index 方法中调用percent。如果你想显式调用 /percent 你只需要将它添加到路由中就可以了。顺便说一句,您确实为此更改了路由文件,对吗?你至少应该有一个 get 可用于系列 Controller ,或者如果你想要完整的 CRUD,应该有一个资源。另外,我认为您应该遵守以单数形式使用模型名称的惯例,而您的 has_many: 系列对我来说没有意义。你想在那里实现什么目标?如果一个系列 has_may 系列,那么你应该在模型中有一个 serie_id 并且还有一个属于。

希望这能以某种方式有所帮助。

关于javascript - 从 Postgres 以 ROR 的 JSON 格式获取数据到 Highcharts javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24346504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com