Rails 4 ajax调用没有到达正确的控制器

时间:2014-05-18 18:28:32

标签: ruby-on-rails ajax

我有一个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}

1 个答案:

答案 0 :(得分:1)

$.ajax({ 
   url: '/contacts',
   type: 'POST',
   data: JSON.stringify(data),
   dataType: 'json',
   contentType: 'application/json'

})