2016-03-20 18 views
0

私はAjaxを使用するための一歩を踏み出しています。ページを更新する代わりに、私は今、ajaxを使いたいと思っています。私は小さなコードをテストしていますが、ブラウザのコンソールは言う:Ajax、React、Railsを使用したPOST 500(内部サーバーエラー)

POST 500(内部サーバーエラー)

ルート:

post 'to/test' => 'foo#bar' 

.jsxの:

test(e){ 
    $.ajax({ 
     url: 'to/test', 
     type: 'POST', 
    }); 
}, 

foo_controller.rb:私のレールのコンソールを見ると

def bar 
u = User.last 
u.age = 99 
u.save 
end 

は、ユーザの年齢は、私は私のAjaxの学習に見逃している99何かに設定されたのですか?

+0

Railsのログファイルはどうですか? 500エラーは内部サーバーエラーについて、私たちを示しています。私は答えを知っていると確信しています、それは 'Template is missing'です。 –

+0

@Зелёныйテンプレートを探しています。私はテンプレートが必要ない。これを防ぐ方法は?リダイレクト? – Sylar

答えて

0

私は答えを知っているかなり確信している、それだけでhead :okを追加し、Template is missingエラーです:

def bar 
    u = User.last 
    u.age = 99 
    u.save 
    head :ok 
end 

head(status, options = {})

なしコンテンツ(単にヘッダを持っていない応答を返します。 )。引数 はヘッダー名と値のハッシュと解釈されます。この は、 重要なヘッダーだけで構成される応答を簡単に返すことができます。

+0

'head:ok'が最高でした。ありがとう。 – Sylar

0

変更この:これに

url: 'to/test'

url: '/to/test'

そうでない場合はAJAX呼び出しは、現在のパスではなく、ドメインへのローカルパスへのローカルパスを使用します。

編集:それをスクラップすると、500エラーが発生する可能性があります。あなたのサーバーログは何を言いますか?アクションメソッドがrespond_toブロックでjsに応答し、bar.js.erbテンプレートファイルがあることを確認する必要があります。

関連する問題