Ajax调用创建模型实例onClick(Rails 4)

时间:2016-02-27 10:42:16

标签: javascript ruby-on-rails ajax

单击按钮时,我想触发使用AJAX创建模型。我在控制器中定义了create动作,并在按钮上添加了一个onClick事件监听器:

 <a class="add-step btn btn-primary">Add</a>
 <script>
   $('.add-step').click(function(){
   console.log("button works");
      $.ajax({
        type:'POST',
        url: '/blocks',
        dataType: "son",
        contentType: "application/json; charset=utf-8",
        data: { content: "hello" }
      });
   });
 </script>

在我的blocks_controller.rb

 def create
    @block = Block.new(blocks_params)
    respond_to do |format|
      if @block.save
        format.json { render json: @block }
      else
        format.html { render action: "new" }
        format.json { render json: @block.errors }
      end
    end
  end

 private 

 def blocks_params
   params.require(:blocks).permit(:content)
 end

我得到&#34;按钮工作&#34;在控制台中,但我也有一个错误:

POST http://localhost:3000/blocks 400 (Bad Request)

这似乎是params的一个问题(因为我没有获得404,似乎create动作&#34;工作&#34;)但我不能发现它有什么问题。

1 个答案:

答案 0 :(得分:1)

原始回答

$.ajax({
    method:'POST',
    url: '/blocks',
    dataType: "script",
    format: "js",
    data: { content: "hello" }
  });

<强>更新

尝试这样做:

$.ajax({
    method:'POST',
    url: '/blocks',
    dataType: "json",
    data: { content: "hello" }
  });

我认为您的问题是dataType应为jsontype应为method