单击按钮时,我想触发使用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;)但我不能发现它有什么问题。
答案 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
应为json
且type
应为method
。