有人可以帮我解析我的Rails PUT ajax请求有什么问题吗?

时间:2015-06-02 19:27:26

标签: javascript jquery ruby-on-rails ajax

我没有太多使用Ajax的经验,除了在带有get和post请求的rails应用程序上的几个镜头,但是我对如何使用PUT发出ajax请求有一些严重的问题方法。特别是我在通过ajax将Rail的@variables传递给控制器​​时遇到了问题。

我在下面有以下视图代码:

 - if logged_in? && @account.stacks.count > 0
    - @account.stacks.each do |stack|
    - haml_tag :div, stack.title
    = check_box_tag 'stacked', 0, false, { stack: stack.id, project: @project.id } 

这会创建如下图所示的html标签:

enter image description here

这是我的.js代码:

$(document).ready(function() {

  // Grab the checked value 0 for unchecked, 1 for checked
  var check_value = $("input[name='stacked']").val();

  $("input[name='stacked']").click(function() {
    if (check_value == 0) {

      //grab the id of my stack object
      var stack_id = $("input[name='stacked']").attr("stack");

      //change the unchecked value to checked
      check_value = 1;

      //Make a request to the controller
      // url = '/stacks/12345'
      $.ajax("/stacks/" + stack_id,{
        type: "PUT"
        dataType: ?
        //success: This function will change an html element on the modal
      });


    } else {
      // code code code
    }
  });
});

当我尝试发送此请求以查看它是否有效时。我收到了这个错误。

Started PUT "/stacks/undefined" for ::1 at 2015-06-02 15:12:28 -0400
Processing by StacksController#update as */*
  Parameters: {"id"=>"undefined"}

为什么url堆栈/未定义?我console.logged url并返回正确的字符串?我还尝试传入rails指南中指定的数据属性,但这似乎也不起作用。

= check_box_tag 'stacked', 0, false, { "data-stack" => stack.id, "data-project" => @project.id } 
var stack_id = $("input[name='stacked']").data("stack");

网址往往会像/stacks/<#Object>一样结束。这也不对。有人可以帮助确定我做错了吗?

0 个答案:

没有答案