Как передать флеш-уведомление Rails5 toastr в form_for с remote: true без перезагрузки страницы? - PullRequest
0 голосов
/ 28 марта 2019

Я создаю базовое приложение CRUD, и у меня есть form_for, который настроен для ajax с remote: true.Форма работает, как и уведомления, но я не могу ее интегрировать с toastr.По сути, это показывает, что у меня проблемы с пониманием того, как на самом деле работает вспышка.

Я прошел через 95% пути.У меня просто проблемы с этим последним этапом передачи обслуживания toastr.

Вот мои макеты / _flash частичный

#flash_messages
  - flash.each do |f|
    -type = f[0].to_s
    = javascript_tag do
      toastr["#{type}"]("#{f[1]}")

Мое действие контроллера состояния

def create
     @status = Status.new(status_params)
     if @status.save"
         flash[:success] = "status created!"
       respond_to do |format|
         format.js
       end
     else
       redirect_to :back
     end
   end

Моя форма_для

= form_for(current_user.statuses.build, remote: true) do |f|
  =f.hidden_field :media_id, :value => media.id
  =f.hidden_field :user_id, :value => current_user.id
  =f.hidden_field :media_type, :value => media.media_type
  %label.label= f.label :completion_status, 'Set Status'
  .field.has-addons
    .control
      .select
        = f.select :completion_status, options_for_select(["current", "completed", "future", "abandoned"])
    .control
      = f.submit "Save!", :class => "button is-primary"

и мой файл контроллера action.js.haml

$("#item_#{ @media.id }").html("#{escape_javascript(render(:partial => 'shared/media_status/destroy_status', :locals => { :media => @media }))}");
- flash.each do |type, message|
  $("#flash_messages").html("#{type}: #{message.html_safe?}")

Я ожидаю, что это выдаст уведомление toastr, но вместо этого я просто получаю текстовое сообщение.Когда я перезагружаю страницу, уведомление от тостра отображается правильно.

Я много работал над этим и не очень умен.Я чувствую, что мне здесь чего-то не хватает.

...