2016-08-01 14 views
0

js.erbファイルからコントローラメソッド(レコードを削除する)を呼び出そうとしています。私が持っているもの:ユーザーが「削除」ボタンをクリックしたときにjs.erbのコントローラメソッドを呼び出す

var selection = confirm("Are you sure that you want to delete the record?"); 

if(selection == true){ 
    new Ajax.Request('/students/destroy', { 
       method: 'post', 
       parameters: {id: "#{student.id}"} 
      }); 
    alert("deleted"); 
} 

このdelete.js.erbが呼び出されます。私は、ユーザーが削除を確認するとjs.erbからメソッドを破棄するように呼び出そうとしています。これを修正する方法を教えてください。ありがとうございました!

+0

なぜ、 'remote:true'という方法でレールを使うのではないのですか?またはjqueryを使用する必要がありますか? – mrvncaragay

+0

<℅= @ student.id>を試しましたか?コントローラー変数とは何ですか? – tworitdash

答えて

0
if(selection == true){ 
    var student_id = <%= student.id %>; 
    $.ajax({ 
     type: "DELETE", 
     url: "/students/"+ student_id +"/destroy", # instead use the destroy path like <%= student_path(student) %> 
     success: function (result) { 
     window.alert("success!!"); 
     }, 
     error: function(){ 
     window.alert("something wrong!"); 
     } 
    }); 
} 

タイプはdeleteである必要があります。あなたはJqueryを使っていると思います。

ところで、これは正しいアプローチではありません。あなたはajaxレンダリングを使うべきです。

関連する問題