我有一个显示highchar的页面。我想使用Javascript来获取特定用户的几条信息。我想从我的数据库中取出并将其放在highcharts graoh上。我已经设置了JSfiddle来显示静态数据。但
我想做的是:
所以我的问题是如果我想使用我的数据库中的信息怎么办?
以下两种型号
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
答案 0 :(得分:9)
您可以使用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) %>");
一些好的教程