私はHTMLで作成したシンプルな友達紹介フォームです。正しくデータをサーバーに返信し、正しく送信しています。RailsでAJAXフォームの投稿に応答するにはどうすればよいですか?
がここにjavascriptのコードだ(それはCoffeeScriptの中にあります):
$('#tell-a-friend-form').submit (e) ->
e.preventDefault()
console.log "submitted form."
$.ajax
url: 'home/tellafriend'
type: 'POST'
data:
name: $(this).find("input[name='name']").val()
emails: $(this).find("input[name='emails']").val()
message: $(this).find("textarea[name='message']").val()
success: (result) ->
alert("ok")
$('#tell-a-friend-form').find(".loading-icon").hide()
error: (result) ->
alert("Sorry, we couldn't send your message.")
$('#tell-a-friend-form').find(".loading-icon").hide()
$('.tell-a-friend-submit').removeAttr("disabled")
$(this).find(".tell-a-friend-submit").attr("disabled", "disabled")
$(this).find(".loading-icon").show()
を今、コントローラでは、私はそうブールの多分「送らOK」タイプ以外、まったくのメッセージを返す必要はありません。クライアント側のjavascriptは "成功"か "エラー"かを知ることができます。
現在、クライアント側では毎回「エラー」が発生します。私は、コントローラ側で間違ってやってる
def tellafriend
#send the actual email message. to be implemented.
respond_to do |format|
format.json { render :json => "success" }
end
end
何か:
は、ここに私のコントローラのコードですか?問題はここにあると確信しています。 「成功」ビットを発したい場合は、何を返す必要がありますか?
何も返すことはできません...とにかく、ajaxリクエストがコントローラコードにヒットしますか?私は問題はそこにないと思う。 – gdoron
私はRubyがいつも最後の行を返すと思った。これは本当に私を助けません。編集:**はい**適切なデータと共にコントローラコードがヒットします。問題はコントローラのリターンにあります。 –
ohhh私は 'Ruby'をまったく知りません... – gdoron