查询rails数据库,并使用Javascript更新highcharts

查询rails数据库,并使用Javascript更新highcharts,javascript,ruby-on-rails,ajax,ruby-on-rails-3,highcharts,Javascript,Ruby On Rails,Ajax,Ruby On Rails 3,Highcharts,我有一个显示highchar的页面。我想使用Javascript为特定用户获取几条信息。我想从我的数据库中获取并将其放在highcharts graoh上。我已经设置了一个显示静态数据的窗口。但是 我想做的是: 让javascript使用参数调用Rails操作 查询rails数据库(projectHours表) Rails返回响应 Javascript更新highcharts并映射存储在projectHours表中的信息 所以我的问题是如果我想使用数据库中的信息怎么办? 以下两种型号 努力。

我有一个显示highchar的页面。我想使用Javascript为特定用户获取几条信息。我想从我的数据库中获取并将其放在highcharts graoh上。我已经设置了一个显示静态数据的窗口。但是

我想做的是:

  • 让javascript使用参数调用Rails操作
  • 查询rails数据库(projectHours表)
  • Rails返回响应
  • Javascript更新highcharts并映射存储在projectHours表中的信息
所以我的问题是如果我想使用数据库中的信息怎么办?

以下两种型号

努力。rb

class Effort < ActiveRecord::Base              
  belongs_to :project_task
  belongs_to :user
end
class User < ActiveRecord::Base

  has_many :projects
  has_many :efforts

您可以使用jQuery的get函数向rails应用程序发送get请求,如下所示

$.get("/efforts/24", { name: "John", time: "2pm" } );
在你的控制器里,你可以做如下的事情

def show
  @effort = Effort.find(params[:id])
  # or find by some of the name of time params

  respond_to do |f|
    format.json { render :json => @effort }
  end
end
根据您想要呈现结果的方式,您可以通过添加原始jQuery get让javascript处理ajax:success

$.get("/efforts/24", { name: "John", time: "2pm" } ).success(function(data) {
  alert(data)
  // Or do whatever you want :)
});
或者您可以将响应更改为

respond_to do |f|
  format.html { render :nothing => true }
  format.js
end
并在应用程序/视图/工作目录中创建show.js.erb。在此文件中,可以使用响应对象

$('body').html("<h1><%= escape_javaScript(@effort.title) %></h1>").append("
<%=escape_javaScript(@effort.content) %>");
$('body').html(“”).append(“”)
");
一些很好的教程


谢谢您的回复,我现在就来看看
$('body').html("<h1><%= escape_javaScript(@effort.title) %></h1>").append("
<%=escape_javaScript(@effort.content) %>");