Rails javascript数据库查询

时间:2011-12-14 10:46:54

标签: javascript ruby-on-rails jquery ruby-on-rails-3.1

如何从javascript进行PUT,POST或DELETE调用?

我使用jquery拖放收集了一些数据。我如何将其发送到数据库?我想我可能能够使用jQuery.ajax,但无法确切地知道如何。

任何指示赞赏。

解决方案:

这是有效的javascript

$(document).ready(function() {
  $.ajax({
        type: "PUT",
        url:    "/articles/8", // should be mapped in routes.rb
        data: {articles:{name:"New Name"}}
      });
});

但它并没有将第8条的名称改为新名称。 Firebug没有显示错误,但我仍然无法将数据传递给编辑。

url是使用put url的标准更新,它存在于路由中。

2 个答案:

答案 0 :(得分:2)

您可以使用jQuery ajax:这是使用服务器端代码动态处理浏览器请求的一种非常好的方法。

jQuery('#element_id').on('click change',function(){ // use event as per your need
       $.ajax({
              type: "GET",
              url:    "/edit_comment", // should be mapped in routes.rb
              data: {comment:"new comment"},
              datatype:"html", // check more option
              success: function(data) {
                       // handle response data
                       },
              async:   true
            });    

});

有关详细信息,请查看以下链接:

http://api.jquery.com/jQuery.ajax/

http://api.jquery.com/category/ajax/

RAIL代码

def edit_comment
@comment = params[:comment]
// store to database
  response_to do |format|
  render :html 'comment.html'
  end
end

<强>的routes.rb

map.edit_comment "edit_comment", :controller => 'comment', :action => 'edit_comment'

答案 1 :(得分:2)

对于PUT和DELETE,添加一个名为_method的额外参数:_method=PUT
Rails使用它来模拟PUT和DELETE。