微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我想要做的是:

>使用参数使javascript调用Rails操作.
>查询rails数据库(projectHours表).
> Rails返回响应.
> Javascript更新highcharts并映射存储在projectHours表中的信息.

所以我的问题是如果我想使用我的数据库中的信息怎么办?

以下两种型号

Effort.rb

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

users.rb的

class User < ActiveRecord::Base

  has_many :projects
  has_many :efforts

还有一点,我认为在我的努力控制器中我可能需要添加某种形式的渲染动作

     rails reponds_to do |f| f.json 
    { render :json => some_hash
} 
      end

解决方法:

您可以使用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

根据你想要渲染结果的方式,你可以让javascript处理ajax:成功加入原来的jQuery get

$.get("/efforts/24", { name: "John", time: "2pm" } ).success(function(data) {
  alert(data)
  // Or do whatever you want :)
});

或者您可以将respond_to更改为

respond_to do |f|
  format.html { render :nothing => true }
  format.js
end

并在你的app / views / effort directorty中创建一个show.js.erb.在此文件中,您可以使用响应的对象

$('body').html("<h1><%= escape_javaScript(@effort.title) %></h1>").append("
<%=escape_javaScript(@effort.content) %>");

一些很好的教程

Rails and jQuery
jQuery GET

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐