Rails редактирование ответа с помощью JS

262
13 марта 2017, 10:58

Добрый день!

О системе: rails 5.0.2 ruby 2.4.0

Создаю вопрос, к нему создаю ответ, ответ создается страница рендерится и тут сразу глюк, форма не очищается. Затем жму кнопку edit на вновь созданном ответе и страница обновляется и не дает форму для редактирования. Сам ответ на странице присутствует, а вот если смотреть исходный код страницы, то его там нету.

Если я обновляю F5, то нажав кнопку Edit, все нормально, форма появляется можно редактировать, но и тут проблема отредактированный ответ не остается на месте, а падает в самый низ, встает последним.

Не очищается форма при создании ответа. Именно после создания ответа, кнопка Edit вновь созданного ответа перестает показывать форму во всех ответах, которые есть на странице, пока не обновишь страницу F5 После редактирования ответа, перемещается вконец списка.

Заметил, что добавление ответа работает корректно, до добавления редактирования, куда смотреть уже не знаю, попробовал и gem jquery turbolink, пробовал функцию на ready вешать, воз и ныне там.

Assets:

answers.coffee

edit_answer = ->
  $('.edit-answer-link').click (e) ->
  e.preventDefault();
  $(this).hide();
  answer_id = $(this).data('answerId')
  $('form#edit-answer-' + answer_id).show()
$(document).ready(edit_answer)
$(document).on('page:load', edit_answer)
$(document).on('page:update', edit_answer)

views:

update.js.erb

<% if @answer.errors.present? %>
<% @answer.errors.full_messages.each do |message| %>
    $('.answer-errors').html('<%= j message %>');
<% end %>
<% else %>
   $('.answer-<%= @answer.id %>').html('<%= j render @answer %>');
<% end %>

_answer.html.slim

- if answer.persisted?
    = answer.body
   - if current_user && current_user.author?(answer)
    = link_to 'Edit', '', class: 'edit-answer-link', data: { answer_id: answer.id }
  br
    p
      = form_for answer, remote: true, html: { id: "edit-answer-#{answer.id}" } do |f|
        p= f.label :body, 'Answer'
        .answer-errors
        = f.text_area :body
        = f.submit 'Save'
READ ALSO
Вывести URL для текущей вкладки

Вывести URL для текущей вкладки

Добрый ДеньДля тестового примера хочу попробовать вывести URL для текущей вкладки

301
После смены с mysql на mysqli появилась ошибка Unexpected end of JSON input

После смены с mysql на mysqli появилась ошибка Unexpected end of JSON input

Начал переводить код с mysql на mysqli, все работало, но когда дело дошло до json, то почему-то он начал выдавать ошибки

294
slick slider как убрать border

slick slider как убрать border

Возможно ли в примере ниже убрать border-right у 1 и 2, 4 и 5То есть, чтобы везде был border одинаковой ширины, а сейчас границы по центру в 2 раза

339