Отобразить json ответ в форме Rails - PullRequest
0 голосов
/ 05 марта 2020

У меня есть приложение Rails, у которого есть пара форм внутри модалов. Это код модального представления.

<div class="modal fade" id="<%= htmlid %>" tabindex="-1" role="dialog" aria-labelledby="modal" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <span class="modal-title" id="modalTitle"><%= title %></span>
      </div>
      <div class="modal-body bg-light">
        <%= yield %>
      </div>
    </div>
  </div>
</div>

У меня есть проверка в моей модели rails Topic, и моя цель - показать сообщения об ошибках, если они есть, после отправки этой формы. Я не слишком знаком с JavaScript, и это похоже на то, что может потребоваться. У меня есть ошибки, отображаемые в JSON, но я не уверен, как получить этот ответ json и вставить его в представление.

Например, в моем методе создания, когда topi c не удается сохранить, мы генерируем ответ json, содержащий ошибки и их сообщения.

def create
  @topic = @account.topics.build(topic_params)
  authorize @topic

  respond_to do |format| 
    if @topic.save
       format.html { redirect_to topics_path, flash: { success: 'Topic successfully created.' } }
    else
      format.json { render json: @topic.errors, status: :unprocessable_entity }
    end
  end
end

Моя форма ничего особенного. Я знаю, как go об этом процессе, если я хочу перенаправить после отправки формы. Тем не менее, я бы хотел, чтобы запрос до go был выполнен и сообщение об ошибке отображалось без необходимости повторного обновления sh страницы или перенаправления и повторной визуализации модального сообщения с ошибками.

<%= form_tag topics_path, remote: true do %>
  <div class="form-group">
    <%= label_tag :name %>
    <%= text_field_tag :name, "", class: 'form-control', id: 'topic' %>
  </div>

  <div class="float-right">
    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
    <%= submit_tag "Submit", class: 'btn btn-primary', id: 'submitTopic' %>
  </div>
<% end %>

TLDR; Как мне получить JSON ответ от HTTP-запроса и подключить его к представлению Rails без обновления страницы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...