我正在尝试对记录进行内联(即不使用表单并且不转到另一个页面)更新(以及,单独但同样的问题,删除)。
我在 postgres 中使用 ruby、sinatra 和 SEQUEL。
jquery脚本如下:
<script>
$(".update").click(function() {
var id = $(this).attr('id');
alert(id);
var email = $('#email'+id).val();
var user = $('#user'+id).val();
var pass = $('#pass'+id).val();
alert(email + ' ' + user + ' ' + pass)
$.ajax({
type: "GET",
url: "/update/data",
data: { 'id': id, 'email_address': email, 'username': user, 'password': pass },
success: function(data){
alert("updated")
}
});
});
</script>
第一个警报正确显示了新值,因此该部分正在工作。
红宝石脚本如下:
get '/update/data' do
DB[:users].where(:user_id => params[:id]).update(email_address:params[:email], username:params[:user], password:params[:pass])
redirect '/'
end
我认为 DB 查询编写正确,但我认为脚本的 jquery 和 ruby 部分不是从同一张赞美诗中唱出来的。
当我检查我的控制台时,出现了:
"GET /update/data?user_id=31&email_address=miki%40nihon.jp.com&username=niyan123&password=braves098 HTTP/1.1"
事实上,这反映了我想要做出的改变。所以发生了一些事情,但是更新不起作用,在 jquery 使用“更新”警报完成其流程后,记录保持不变。
我尝试删除内联记录时也有类似的经历。
我究竟做错了什么?我确信到处都有可怕的错误。例如,ruby 脚本应该是 get、post 还是 put?
非常感谢您提供的任何帮助。