У меня есть следующие
=form_for @issue, remote: true, html: {class: 'form-inline'} do |f|
...
И
<form class="form-inline" id="new_issue" action="/issues" accept-charset="UTF-8" data-remote="true" method="post">
И
$(document).on 'turbolinks:load', ->
$("#new_issue").on("ajax:success", (e, data, status, xhr) ->
console.log 'data='+data
console.log 'status='+status
console.log 'xhr='+xhr
$("#new_issue_success").append(xhr.responseText).show()
$("#new_issue_error").hide()
).on("ajax:error", (e, xhr, status, error) ->
console.log 'error='+error
console.log 'status='+status
console.log 'xhr='+xhr
$("#new_issue_error").append("ERROR: #{error}").show()
$("#new_issue_success").hide()
).on('ajax:complete', ->
console.log 'complete'
)
И
def create
issue = Issue.new issue_params
issue.validate_user_entry
if issue.errors.empty? && issue.save # can't use #valid? because that clears errors and runs only standard Rails validations!
render json: issue, status: :created
else
render json: issue.errors.full_messages, status: :unprocessable_entity
end
Я получаю это вмоя консоль браузера
POST http://localhost:3000/issues 422 (Unprocessable Entity)
XHR failed loading: POST "http://localhost:3000/issues".
И это в моей консоли сервера Rails
Started POST "/issues" for 127.0.0.1 at 2018-06-07 22:29:34 -0400
Processing by IssuesController#create as JS
Parameters: {"utf8"=>"√", "issue"=>{"first_name"=>"", "last_name"=>"", "city"=>"", "issue"=>""}, "commit"=>"Submit"}
Completed 422 Unprocessable Entity in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
Так почему бы не вызвать обратный вызов Ajax и распечатать результаты на консоли?Успешно или неудачно, я ожидал, что он покажет результаты.
Это взято прямо из руководства: http://guides.rubyonrails.org/v5.0/working_with_javascript_in_rails.html#form-for
Я также пытался
$(document).on("ajax:success", (e, data, status, xhr) ->
...
).on "ajax:error", (e, xhr, status, error) ->
...
Я подтвердилсобытие прослушивает элемент в браузере
У меня есть что-то почти такое же в другом проекте Rails, который работает.Я опустился до Rails 5.0.6, как и другой проект, но это не помогло.
Rails 5.0.7, JQuery 3.3.1
Я обнаружил, что это вызваноActiveAdmin.Я ввел ошибку для этого .Когда я переименовываю active_admin.js.coffee
в active_admin.js.coffee.xxx
, тогда это работает, но, конечно, тогда ломается ActiveAdmin.Я пытался добавить //= stub active_admin
к application.js
, но по какой-то причине jquery_ujs
не загружался.Я просмотрел источник страницы, и /assets/jquery_ujs.self-784...
больше не появлялся, несмотря на то, что //= require jquery_ujs
находился в application.js
.
. Как можно использовать ActiveAdmin и UJS?Мне не нужны UJS на /admin
страницах.