私はAJAXの新人です。チャットメッセージボックスから実際のチャットボックスとレールメソッドの2つの場所にデータを送信しようとしています。そうすれば私はmeesageを表示することができ、私のDBにメッセージを保存することもできます。AJAXデータをコントローラに送信する際に、Railsで問題が発生する
私は、次のJS/HTMLコード
<button onclick="myFunction()" name="submitmsg" type="submit" id="submitmsg" value="Send">Try it</button>
<script>
function myFunction() {
var x = document.getElementById("frm1");
console.log(x);
var text = "";
var i;
for (i = 0; i < x.length ;i++) {
text += x.elements[i].value + "<br>";
}
document.getElementById("chatbox").innerHTML += text;
$.ajax({
url : "/messages/create",
type : "post",
data : { data_value: x }
dataType : "text" //this might be wrong?
});
}
</script>
を持っている私は正常にHTML DOMに挿入することができますが、それは、メッセージコントローラcreate
アクションにデータを送信していません。私のメッセージコントローラの名前はmesssages_controller.rb
で、アクションはcreate
です。
私はその後、params
が何であるかを見るために私のcreate
アクションでdebugger
を追加しましたが、それもコードを実行することはありません。
いくつかのルート:
messages GET /messages(.:format) messages#index
POST /messages(.:format) messages#create
new_message GET /messages/new(.:format) messages#new
edit_message GET /messages/:id/edit(.:format) messages#edit
message GET /messages/:id(.:format) messages#show
PATCH /messages/:id(.:format) messages#update
PUT /messages/:id(.:format) messages#update
DELETE /messages/:id(.:format) messages#destroy
UPDATE
待ち時間は、何かが私のJSコードに問題があります。以前はHTMLをDOMに挿入していましたが、調整の途中で停止しました。コンソールはエラーnew:110 Uncaught SyntaxError: Unexpected identifier
を投げています。110行目がコメントアウトされています。
私が.ajax
を呼び出すと、正常に機能します。私はあなたのcreate
方法でmyFunction()
定義したルートはありますか?あなたのコントローラに 'create'メソッドのコードを追加できますか? – Kumar
あなたの推測で正しいです、 'dataType'は' json'でなければなりません。 –
@ニックニロフ問題を解決しませんでした。 'create'アクションに' debugger'を置くと、デバッガがコンソールに開かれるはずです。私はルートを追加しました –