【问题标题】:Rails javascript database queriesRails javascript 数据库查询
【发布时间】:2011-12-14 10:46:54
【问题描述】:

如何从 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的标准更新,存在于路由中。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 感谢您的帮助 - 我需要更多说明!如果我想用它来编辑评论,我可以使用@comment 找到控制方法的 url 吗?当我输入数据时,如果我想将名称编辑为 Edward 是数据:{name:"Edward"}
    • 我已经编辑了代码,使注释的内容不太清楚。试着去理解它。
    • 在 ajax 调用中,数据语句需要包含对对象的引用。我已经用有效的代码更新了我的问题。
    【解决方案2】:

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

    【讨论】:

    • 它似乎不喜欢 _method=PUT - 我收到一个错误 missing : after property id _method: "PUT" 没有抛出任何错误。我还没有设法输入任何数据 - 我仍然不明白如何传递数据。
    • 示例是 url 代码而不是 js。在 JS 中,您确实会添加引号。在“data:{}”参数或jquery ajax请求中传递数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 2016-04-25
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多