Jak mogę wyłączyć wszystkie flashowe wiadomości Devise ("pomyślnie się zalogować", "wylogowałeś")? Dzięki.Rails Disable wymyślić wiadomości flash
Odpowiedz
Prawdopodobnie najprostszym sposobem, aby to zrobić jest
- Określ każdą wiadomość jako pusty ciąg
- Sprawdź długość łańcucha przed pokazać wiadomość flash.
W pliku devise.en.yml
określić każdą wiadomość jako pusty:
en:
errors:
messages:
not_found: ''
already_confirmed: ''
not_locked: ''
itd. Następnie w układzie, sprawdzić pustych strunach błyskowych przed wami wyjściu nich.
<% flash.each do |key, value| %>
<%= content_tag :div, value, :class => "flash #{key}" unless value.blank? %>
<% end %>
Bardzo elegancki! Dla mojego opracowania (2.1.0) samo ustawienie ciągu znaków na "" sprawiło, że trik nie sprawdzał pustki? –
Nawet po 4 latach to nadal działa: +1, dziękuję – Abhinay
Devise obejmuje podręczny generator, aby skopiować wszystkie widoki w projekcie:
rails generate devise:views
W ten sposób można zmieniać poglądy siebie i zdecydować, co chcesz zachować, czy wyrzucić (komunikaty Flash) .
Wygląda jak odpowiedź na kolejne pytanie. Z tym nie można wyłączyć wiadomości flash. Zobacz odpowiedź Brandona. – Voldy
Możesz wyświetlić wiadomości flash w każdym widoku, usuwając go. Ale wydaje się, że to pytanie zakłada, że są w układzie. –
Odpowiedź lepiej nadaje się dla mnie było, aby zastąpić kontroler opracować sesji jak ta
class SessionsController < Devise::SessionsController
# POST /resource/sign_in
def create
super
flash.delete(:notice)
end
# DELETE /resource/sign_out
def destroy
super
flash.delete(:notice)
end
end
Ten bezpiecznie nadpisuje metodę tworzenia i niszczenia usuwając wiadomość bezpośrednią
w Rails 4 i Devise 3.4.1, musiałem dodać to do tras: devise_for: users, controllers: {sessions: "sessions"} –
I byli w stanie je wyłączyć w danym kontrolerze nadrzędnymi is_flashing_format?
:
def is_flashing_format?
false
end
Używam opracować 3.5.6
Dla Rails 5.0.6 ten kod będzie działał.
app/controllers/sessions_controller.rb
class SessionsController < Devise::SessionsController
def new
flash.clear
super
end
end
Nie zapomnij trasy.
config/routes.rb
devise_for :users, controllers: { sessions: 'sessions' }
- 1. Wiadomości Flash BackboneJS
- 2. jquery: Wiadomości flash
- 3. Way to disable Rails SQL logs?
- 4. Wymyślić niestandardowy błąd sign_in
- 5. Usuń potwierdzenie hasła; wymyślić
- 6. Testy funkcjonalne wiadomości flash po przekierowaniu
- 7. Wyświetlanie wiadomości flash po zalogowaniu się/wylogowaniu
- 8. Jak przerwać wysyłanie wiadomości flash w szynach
- 9. renderowanie częściowej wiadomości flash w Railsach 3
- 10. Jak skonfigurować Wymyślić nazwę nadawcy wiadomości e-mail?
- 11. Jak wyświetlić powiadomienie Flash Rails po przekierowaniu?
- 12. Wymyślić rekonfigurowalne
- 13. Disable Checkstyle
- 14. Jak definiować powiadomienia Flash za pomocą Twittera Bootstrap Rails gem
- 15. Wymyślić uwierzytelnianie przy użyciu cURL
- 16. Szyny wymyślić błąd "NoMethodError ... scalić"
- 17. Wymyślić, nie można się wylogować
- 18. Wymyślić before_filter authenticate_admin?
- 19. Aktywny administrator - wiadomości flash nie pojawiają się na stronie
- 20. Czy można potwierdzić dodanie linku do wiadomości flash?
- 21. Jakie rodzaje wiadomości flash są dostępne w Railsach?
- 22. Wiadomości flash pojawiające się dwa razy w szynach
- 23. Szyna 3 - wiadomości flash uciekły, najlepszy sposób na unescape
- 24. Disable enter submit
- 25. #pragma ostrzeżenie disable & restore
- 26. _really_ disable GtkTreeView searching
- 27. Mass disable Jenkins jobs
- 28. php mysql_connect Warning disable
- 29. Przycisk Home Disable
- 30. Rails/Devise - Dostosuj wiadomość flash (devise.en.yml) z link_to
Duplikaty to pytanie http://stackoverflow.com/questions/5281365/selectively-turning-off-devises-flash-notices-in-rails-3 – Voldy