【发布时间】:2018-09-04 02:47:28
【问题描述】:
我正在尝试在不使用表单的情况下发出 ajax 发布请求,这是我的观点,
查看
<div class="col-md-12">
<input value="<%= session[:user_id]%>" id="user_id" hidden>
<%= link_to "Add New", new_task_list_path, :remote => true, :class =>"btn btn-xs add-list" %>
</div>
Ajax
$(document).on('click','.add', function(){
user_id = $('#user_id').val();
var name = $('.new-list').val();
var current = $(this);
if(name){
$.ajax({
method: 'POST',
url: action,
dataType: 'JSON',
data: {
task_list: {
name: name,
user_id: user_id
}
}
}).success(function(e){
$(current).parent().parent().parent().before(
'<div class="col-md-12">'+
'<a href="#" class="btn btn-xs list ">'+name+'</a>'+
'</div>'
);
$(current).parent().parent().parent().remove();
$('.add-list').show();
});
}else{
alert('please add title');
}
});
控制器
def create
@task_list = TaskList.new(task_list_params)
end
private
def task_list_params
params.require(:task_list).permit(:user_id, :name)
end
这里,点击 Add New 按钮时触发 ajax post 请求,并将参数传递给控制器,返回的状态码是 204 成功但没有数据插入到数据库表中。
我正在使用 postgres 作为数据库。 请帮助我找出我做错了什么。
PS:我是 Rails 新手,如果这是愚蠢的问题,请原谅,如果您需要更多详细信息,请随意询问。
【问题讨论】:
-
您的日志中是否有任何错误?
-
我没有收到任何错误,并且在调用后执行 ajax 成功,状态码为 204
-
多么愚蠢的错误,我只是忘记在创建函数中添加@task_list.save。感谢您的宝贵时间。
-
哈哈我也没有注意到,只是假设它在那里:D
-
您确定
$(current).parent().parent().parent()存在吗?
标签: javascript jquery ruby-on-rails ajax postgresql