Неудачный AJAX вызвал записи ассоциации в рельсах - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть страница указателя, где я отображаю все сообщения для пользователя с использованием частичного. Каждое сообщение может иметь несколько комментариев. На данный момент процесс работает, но каждый раз, когда пользователь добавляет комментарий, он обновляет всю страницу. Я пытаюсь получить вызов AJAX для каждого обновления, но получаю ошибку при изменении метода Create в Comments.controller. Кто-нибудь знает, как я должен написать ответ после сохранения комментария, пожалуйста? Мой комментарий. Контроллер:

def create
    @message = Message.find(params[:message_id])
    @comment = @message.comments.create(comment_params)
    @comment.user_id = current_user.id
    CommentMailer.new_comment(@comment).deliver_now
    if @comment.save
      respond_to do |format|
        @comment = Message.find(params[:message_id]).update_columns(msg_responded_status: "1")
        @comment = Message.find(params[:message_id]).update_columns(msg_responded_time: Time.current) @message = Message.find(params[:message_id])
        format.html
        format.js
      end
    else
      render 'new'
    end
  end

My messages/show.html.erb, который вложен в message/index.html.erb:

<%= raw @message.description %>
<div id="comments"> <%= render @message.comments %>
</div>
<% if user_signed_in? %>
<div id="comments_form"> <%= render 'comments/form' %>
</div>

_form.html.erb частично:

%= simple_form_for ([@message, @message.comments.build]) do |f| %>
  <%= f.cktext_area :content, label: (t :Reply_to_message) , :input_html => {:rows => 15} %>
  <%= f.button :submit, :class => 'btn-custom', label: (t :CreateComment), remote: true %>

<% end %>

Я создал comments/create.js.erb с:

$("#comments").html("<%= j render partial: '@message.comments' %>");

Код ошибки:

   (0.1ms)  begin transaction
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?  [["id", 1], ["LIMIT", 1]]
  SQL (0.7ms)  INSERT INTO "comments" ("content", "message_id", "user_id", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?)  [["content", "<p>baam</p>\r\n"], ["message_id", 189], ["user_id", 1], ["created_at", "2018-11-12 02:53:45.431470"], ["updated_at", "2018-11-12 02:53:45.431470"]]
   (1.7ms)  commit transaction
Completed 406 Not Acceptable in 741ms (ActiveRecord: 11.6ms)



ActionController::UnknownFormat (CommentsController#create is missing a template for this request format and variant.

request.formats: ["text/html"]
request.variant: []):

является comment правильной папкой для create.js.erb? какие действия мне нужно предпринять после сохранения комментария, пожалуйста?

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