私はここに示した例によれば、AJAXを経由して私の見解から私のコントローラにjavascriptの変数を渡すしようとしています:Passing JavaScript variable to ruby-on-rails controllerAJAXを介してコントローラにjavascriptの変数(文字列)を渡す - 404
私のコントローラ「pages_controllerは。 RB」とは、以下の方法が含まれています
def test_page
@message= params[:id]
puts @message
end
それぞれのビュー 『test_page.html.erbは』ボタンをクリックすることによってトリガーされるAJAX呼び出しではJavaScriptが含まれています
<button id="submit_button">Submit Text</button>
<script>
$("#submit_button").on('click',function(event) {
var string = "helloWorld";
$.ajax({
url: "/test/test_page/?id="+string,
type: "POST",
dataType: "text",
success: function(){
alert('Saved Successfully');
},
error:function(){
alert('Error');
}
});
});
</script>
routes.rbをで
私は次のルートを定義している:私はボタンを押したときに
post 'test/test_page/:id', to: 'pages#test_page'
はしかし、私は、定義されたエラー・アラートを取得し、ブラウザのコンソールを検査する時に、私は次のエラーを参照してください。
jquery.js:11007 POST https://my-website.com/test/test_page/?id=halloWelt 404 (Not Found)
しかし、私は、「レーキルートは、」次のルートが定義されていることを示していることがわかります。私は、コントローラ内の別のメソッドを定義する試みた
POST /test/test_page/:id(.:format) pages#test_page
再ルーティングすることができますが、404エラーは依然として残ります。この404エラーを修正するにはどうすればよいですか?
ポストリクエストでURLにparamsを渡すことはできません。取得要求を使用します。またはそのidをajaxでデータパラメータ – Emu