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





пожалуйста, проверьте мой ответ здесь stackoverflow.com/questions/55390312/… Я надеюсь, что это сработает для вас