【发布时间】:2011-12-11 07:21:18
【问题描述】:
我整天都在谷歌上搜索,但仍然找不到任何答案。所以基本上在我的 javascript 函数中,我想向我的 rails 控制器发送一个 GET 请求,rails 控制器将发回一个 JSON 对象。知道我该怎么做吗?谢谢
【问题讨论】:
标签: javascript ruby-on-rails json
我整天都在谷歌上搜索,但仍然找不到任何答案。所以基本上在我的 javascript 函数中,我想向我的 rails 控制器发送一个 GET 请求,rails 控制器将发回一个 JSON 对象。知道我该怎么做吗?谢谢
【问题讨论】:
标签: javascript ruby-on-rails json
使用 jQuery 我会做这样的事情:
在你想要的选择器和事件中,例如点击某个元素:
$(function() { $('#foo').click( function(){ var params = '{"field1": "value1", "field2: "value2"}'; $.get('/controller/bar', params, function(data){ alert(data); }); }); });
然后在你的 Rails 控制器中:
def bar /// hack hack hack render :json => {"response" => "OK"} end
在你的 routes.rb 中:
match 'controller/bar' => 'controller#bar'
最后,根据您的代码更改“控制器”。 Firebug 是你的朋友!
【讨论】:
您可以使用 jQuery ajax 从 javascript 发出 get 或 post 请求。
jQuery.ajax({
url: "url to controller method", // it should be mapped in routes.rb in rails
type: "GET",
data: {field1 :value1, field2:value2}, // if you want to send some data.
dataType: "json"
success: function(data){
// data will be the response object(json)
}
});
rails 的响应类似于以下内容,您可以根据需要进行修改。
respond_to do |format|
format.js { render :json => @json_data }
end
【讨论】: