У меня есть контроллер:
class CommentariesController < ApplicationController
before_action :authenticate_user!
before_action :find_commentary, only: [:update, :destroy]
before_action :find_commentable, only: [:create]
def create
@commentary = @commentable.commentaries.new(commentary_params)
@commentary.user_id = current_user.id
@commentary.save!
end
def update
@commentary.update(commentary_params) if current_user.authorized_for?(@commentary)
end
def destroy
@commentary.destroy if current_user.authorized_for?(@commentary)
end
private
def find_commentary
@commentary = Commentary.find(params[:id])
end
def commentary_params
params.require(:commentary).permit(:body)
end
def find_commentable
if params[:question_id]
@commentable = Question.find(params[:question_id])
elsif params[:answer_id]
@commentable = Answer.find(params[:answer_id])
end
end
end
И посмотреть на его create
действие:
("#<% @commentary.commentable_type.underscore %>-<% @commentary.id %>").append("<% j render @commentary %>")
_commentary.html.slim
:
div class='d-flex justify-content-end mb-2'
div class='card col-10'
div class='card-body small text-muted' = commentary.body
Когда create
действие обрабатывается, все в порядке, комментарии создаются и успешно сохраняются в БД, но вместо того, чтобы jQuery добавляет представленный HTML-код комментария, я не получаю ошибок, но такой ответ:
$("#-").append("")
Я не могу понять, что здесь происходит, поэтому я не получаю ошибок, комментарии сохраняются, но я получаю пустые поля объекта комментария.