レコードをインラインで (つまり、フォームを使用せず、別のページに移動しないで) 更新 (および、別の同じ問題で削除) しようとしています。
私は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>
最初のアラートは新しい値を正しく表示するので、その部分は機能しています。
Rubyスクリプトは次のとおりです。
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 にする必要がありますか?
提供されたヘルプに事前に感謝します。