У меня есть страница указателя, где я отображаю все сообщения для пользователя с использованием частичного. Каждое сообщение может иметь несколько комментариев. На данный момент процесс работает, но каждый раз, когда пользователь добавляет комментарий, он обновляет всю страницу. Я пытаюсь получить вызов 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? какие действия мне нужно предпринять после сохранения комментария, пожалуйста?