Как добавить render .erb для рендеринга / redirect_to json в контроллере? - PullRequest
0 голосов
/ 26 мая 2019

Я хочу добавить обновление #comment-counter-fiels после действия уничтожения (render 'destroy').

Я имею в виду _fields.html.slim:

span#comment-counter-field.comment-counter.color-brand-fourth.size-small
      = user.comments_count || 0

Действие в контроллере comments_controller.rb:

def destroy
    @comment.destroy
    respond_to do |format|
      format.html {
        if @comment.obj.comments.blank?
          redirect_to forum_root_path
        else
          redirect_back fallback_location: root_path
        end
      }
      format.js {   
        if @comment.obj.comments.blank?
          render json: { redirect_to: forum_root_path } # Here
          return
        else
          render json: { status: 'no_content' } # Here
          return
        end
      }
    end    
  end

Действие в представленной панели управления _comment.html.slim:

            - if can?(:destroy, comment)
              li
                = link_to 'DELETE IT',
                  comment_path(comment),
                  method: :delete,
                  remote: true,
                  data: { destroy_remote: true, destroy_target: '.comment', type: :json },
                  class: 'js-comment-destroy'

А просмотры destroy.erb:

var commentsCount = "<%= User.find(@comment.user.id).comments_count %>"
$('#comment-counter-field').text(commentsCount)

Я использовал много случаев, но, к сожалению, не сработало ... Может быть, изменить запрос json, но не знаю, как это сделать.

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