Уведомления о тостах не отображаются на рельсах - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь добавить тост сообщения при входе / выходе, но я не получаю тост. Спасибо за любой совет!

gemfile

gem 'devise'
gem 'toastr-rails'

app \ javascript \ packs \ application. js

require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
toastr = require("toastr")
import "bootstrap"
import "../stylesheets/custom.css"

app \ assets \ stylesheets \ application. css

 *= require bootstrap
 *= require_tree
 *= require toastr
 *= require_self

app \ assets \ stylesheets \ custom. css .s css

@import 'bootstrap/dist/css/bootstrap';
@import 'toastr';

app \ views \ shared_message. html .erb

<% unless flash.empty? %>
<script type="text/javascript">

    <% flash.each do |key, value| %>
      <% type = key.to_s.gsub('alert','error').gsub('notice', 'success') %>
        toastr['<%= type %>'] ('<%= value %>')
        <% end %>
</script>
      <% end %>

app \ views \ layouts \ application. html .erb

<%= render 'shared/message' %>

1 Ответ

0 голосов
/ 09 марта 2020

В вашем shared_message.html.erb вы уже подставили предупреждение с ошибкой, а уведомление с успехом. Итак, вы делаете это правильно. Но вы должны назвать свой файл _message.html.erb в общей папке.

В приложении. js вам также нужно //= require toastr, а затем убедитесь, что вы находитесь в папке проекта в терминале и запустите bundle install

Убедитесь, что в вашем файле gem указано по крайней мере 1. Как это

gem 'toastr-rails', '~> 1.0'

Go для ваших представлений в devise/sessions/new.html.erb и devise/registrations/new.html.erb и edit.html.erb и убедитесь, что у вас все еще есть это здесь

<%= render "devise/shared/error_messages", resource: resource %> 

Для сообщений об ошибках выше в ваших представлениях, вам нужно будет добавить дополнительную работу, чтобы это показывалось с toastr.

Go к приложению. html .erb и убедитесь, что вы добавили свое частичное общее сообщение над выходом, например:

, и убедитесь, что вы его заменили - Обратите внимание, как вы назвали файл?

<%= render 'shared/message' %>
<%= yield %>

с этим - Обратите внимание, как вы должны объявить правильное имя файла?

<%= render 'shared/shared_message' %>
<%= yield %>

Выше в своем вопросе вы назвали и создали свой файл в общая папка как shared_message.html.erb, что неверно.

Поэтому, пожалуйста, лучше назовите ее _message.html.erb это номинал Tial файл, вы должны поставить под счет. Также для простоты назовите это _message.html.erb

...