На странице есть форма, ссылка на которую отправляет ajax-запрос моему контроллеру.Я хочу, чтобы контроллер обновил ресурс, а затем обновил ресурс на странице.Контроллер отвечает следующим образом:
def update
@article = Article.find(params[:id])
respond_to do |f|
f.js {}
end
end
, который затем использует следующий частичный: (article / update.js.erb)
<%= Rails.logger.info "in the partial"%>
<%= Rails.logger.info @article.title%>
$("#test").append("<h1> Header</h1>")
$("#json-app").append(" hello <%= @article.title %>");
$("#json-app").append("<p> hello</p>");
$("#comments").append("<%= @article.title %>:");
alert("something")
$("#btn").attr('disabled','disabled')
Идентификаторы, на которые я ссылаюсь, присутствуютв представлении вызова в форме
form_for @article ,remote: true, html: {:'data-type' => 'json'}, id: "update_article_form" do |f|
....
<div id="comments"> comments </div>
<div id="json-app"> a response would be nice
<div id="test"> comments</div>
</div>
.....
<%= f.submit 'Update!', id: "btn", style: 'float: inline-end'%>
Но нажатие кнопки не имеет никакого эффекта.В HTML-инспекторе я вижу полезную нагрузку и ответ статуса 200.Журналы показывают:
Started PUT "/article/2223355" for 127.0.0.1 at 2019-02-18 18:04:29 +0100
Processing by v1::ArticleController#update as JSON
...
in the partial
big pott
Rendered v1/article/update.js.erb (2.9ms)
Completed 200 OK in 41.7ms (Views: 8.2ms | ActiveRecord: 2.4ms)
Но внутри представления вызовы jquery не имеют эффекта.
Полезная нагрузка ответа:
true
true
$("#test").append("<h1> Header</h1>")
$("#json-app").append(" hello big pott");
$("#json-app").append("<p> hello</p>");
$("#comments").append("big pott ");
alert("something")
$("#btn").attr('disabled','disabled')
$("input[type=submit]").attr('disabled','disabled')
- Запросзаголовок "accept" установлен на "text / javascript application / json"
- заголовок ответа "content-type" установлен на "text / javascript"
я не понимаюпочему ничего не происходит на странице?Какую часть я пропускаю?Любые предложения приветствуются