はあなたの$('#search_form').submit()
は多分あなたは何をしたい:
$('.tt-menu').on 'keypress', (e) ->
if (e.which == 13)
$.post('/movies', {your_model: {your_field1: 'test', your_field2: 'test2'}};)
は実際にあなたが私の本番サーバーhttps://sprachspiel.xyzでこれをテストすることができ、私が開発してテストしました。
私はホームページ(https://sprachspiel.xyz)に行って、f12
私のJavaScriptコンソールで開かれました。その後、JavaScriptコンソールに私は次のコードを投稿:
$.post('/subscription', { subscription: {email: '[email protected]'}});
このコードは次のような構造で、私のコントローラにパラメータを渡す、私のバックエンドへpost
要求を行うの{subscription: {email: '[email protected]'}}
これは私のルートです
subscription POST /subscription(.:format) subscription#create
サブスクリプションコントローラにはcreate
サブスクリプションを保存するアクションがありますが、最も重要なのは次のようなものですstrong params
プライベートメソッド
def subscription_params
params.require(:subscription).permit(:email)
end
あなたのparamsを構築する方法を、私は最初の試行で幸運だったと私は正しくjqueryの.post()
リクエストを書くことができましたが、ケースには、あなたが今ない、あなたは自分のサーバー・アプリケーション・コードにブレークポイントを設定、subscription_params
に何が間違っているか見ることができます。
あなたが要求を実行すると、サーバーは、私がテストしたbinding.pry
に停止しますが、私のサーバーは、私のdb
Started POST "/subscription" for 127.0.0.1 at 2017-11-01 16:32:14 +0100
Processing by BuildingsController#createSubscription as */*
Parameters: {"subscription"=>{"email"=>"[email protected]"}}
(0.2ms) BEGIN
SQL (0.6ms) INSERT INTO "subscriptions" ("email", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["email", "[email protected]"], ["created_at", "2017-11-01 15:32:14.790279"], ["updated_at", "2017-11-01 15:32:14.790279"]]
(19.8ms) COMMIT
Redirected to http://localhost:3000/
Completed 200 OK in 26ms (ActiveRecord: 20.6ms)
に新しいエントリを作成しますが、あなたがこれを行う場合、あなたは確認する必要があります何らかの理由でエラーメッセージが表示される
申し訳ありません申し訳ありませんが、おそらく私は十分に私の質問を明確にしていません。問題は私がENTERを押したときに 'keypress'イベントを引き起こさないということです。しかし、私はフォーム自体を提出することに問題はありません。私はtypeahead.bunlde.jsの問題の原因を見つけました。 _onEnterKeyedメソッドでe.preventDefault()を削除する必要があります。私は以下の答えを書くでしょう。 –