我有一个rails 4项目。 在views / users / index.html.erb页面中,我有一个ajax调用:
$ ->
sendMessage = () ->
email = $('#contact-email').val()
subject = $('#contact-subject').val()
body = $('#contact-body').val()
data =
"email": email
"subject": subject
"body": body
"authenticity_token": $('input[name=authenticity_token]').val()
$('#ajax-contact-form').hide()
$('.contact.success-message').html("Thank you, #{email}. We'll be in touch.")
posting = $.ajax '/contacts',
type: 'POST'
data: JSON.stringify(data)
dataType: 'json'
contentType: 'application/json'
posting.done (data) ->
console.log "done"
$('#ajax-contact-form').on 'submit', (e) ->
e.preventDefault()
sendMessage()
当我点击按钮时,我可以在控制台上看到完成,并且表格也正确传递。但是在终端中,似乎它将转向users_controller #index函数,而不是contacts_controller #create。 以下是路线:
post 'contacts' => 'contacts#create', as: :contact, defaults: { format: :json }
它不会进入此控制器/功能。
途径:
contact POST /contacts(.:format) contacts#create {:format=>:json}
答案 0 :(得分:1)
$.ajax({
url: '/contacts',
type: 'POST',
data: JSON.stringify(data),
dataType: 'json',
contentType: 'application/json'
})