Làm thế nào tôi có thể vô hiệu hóa tất cả các thông điệp đèn flash đá quý Devise ("đăng nhập thành công", "bạn đã đăng xuất")? Cảm ơn.Rails Vô hiệu hóa phát tin nhắn flash
Trả lời
Có lẽ cách dễ nhất để làm điều này là để
- Xác định mỗi tin nhắn như là một chuỗi trống
- Kiểm tra độ dài của chuỗi trước khi bạn hiển thị tin nhắn nhấp nháy.
Trong file devise.en.yml
của bạn, xác định mỗi tin nhắn như trống:
en:
errors:
messages:
not_found: ''
already_confirmed: ''
not_locked: ''
vv Tiếp theo, trong cách bố trí của bạn, kiểm tra các chuỗi đèn flash trống trước khi bạn xuất chúng.
<% flash.each do |key, value| %>
<%= content_tag :div, value, :class => "flash #{key}" unless value.blank? %>
<% end %>
Rất thanh lịch! Đối với tôi nghĩ (2.1.0) chỉ cần thiết lập chuỗi để '' đã làm các trick mà không kiểm tra trống? –
Ngay cả sau 4 năm, thao tác này vẫn hoạt động: +1, cảm ơn bạn – Abhinay
lập mưu bao gồm một máy phát điện tiện dụng để sao chép tất cả các quan điểm vào dự án của bạn:
rails generate devise:views
Bằng cách này bạn có thể chỉnh sửa các quan điểm bản thân và quyết định những gì bạn muốn giữ lại hoặc vứt bỏ (tin nhắn flash) .
Dường như câu trả lời cho một câu hỏi khác. Bạn không thể tắt tin nhắn flash với điều đó. Xem câu trả lời của Brandon. – Voldy
Bạn có thể nếu bạn hiển thị các tin nhắn flash trong mỗi giao diện, bằng cách xóa nó. Nhưng có vẻ như câu hỏi này giả định rằng họ đang ở trong bố trí. –
Một câu trả lời phù hợp hơn đối với tôi là để ghi đè lên các phiên điều khiển lập mưu như thế này
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
này một cách an toàn ghi đè lên tạo ra và tiêu diệt phương pháp loại bỏ các tin nhắn nhấp nháy
trong Rails 4 và Devise 3.4.1, tôi phải thêm điều này vào các tuyến: devise_for: users, controllers: {sessions: "sessions"} –
tôi đã có thể vô hiệu hóa chúng trong một bộ điều khiển được bằng cách ghi đè is_flashing_format?
:
def is_flashing_format?
false
end
tôi đang sử dụng lập mưu 3.5.6
012.Đối với Rails 5.0.6 mã này sẽ hoạt động.
app/controllers/sessions_controller.rb
class SessionsController < Devise::SessionsController
def new
flash.clear
super
end
end
Đừng quên các tuyến đường.
config/routes.rb
devise_for :users, controllers: { sessions: 'sessions' }
- 1. Vô hiệu hóa tin nhắn WebView từ đầu ra logcat
- 2. BackboneJS Tin nhắn flash
- 3. Tin nhắn của Flash trong Partials (Rails 3)
- 4. Rails trang bộ nhớ đệm và tin nhắn flash
- 5. Hiệu ứng mờ dần của tin nhắn flash
- 6. Tin nhắn flash đường ray trong Java
- 7. Rails luồng nhắn tin
- 8. vô hiệu hóa giải thích trong Rails 3.2
- 9. tạm thời vô hiệu hóa dự phòng i18n trong Rails
- 10. Devise/Rails - Cách xóa một tin nhắn flash cụ thể? (Đã đăng nhập thành công)
- 11. Tin nhắn flash trong Rails được chuyển sang trang tiếp theo
- 12. Vô hiệu hóa UISearchBar
- 13. Vô hiệu hóa OutputCache trên hệ thống phát triển
- 14. Vô hiệu hóa tăng tốc phần cứng Adobe Flash Player trong mã nhúng hoặc AS
- 15. Whats sự khác biệt giữa prop ('vô hiệu hóa', 'vô hiệu hóa') và chống đỡ ('vô hiệu hóa', đúng)
- 16. Hiệu suất cao Tin nhắn JMS
- 17. Các tin nhắn flash được lưu ở đâu?
- 18. Vô hiệu hóa thành bitmap riêng
- 19. Vô hiệu hóa jQuery Masonry
- 20. Vô hiệu hóa plugin Grails
- 21. VS2010 Vô hiệu hóa phác thảo trong xaml, (hoặc vô hiệu hóa phác thảo hoàn toàn)
- 22. Vô hiệu hóa bộ nhớ đệm tài sản Sprockets trong quá trình phát triển
- 23. Hiệu suất nhóm tin nhắn ActiveMQ
- 24. Mã hóa tốt? (Nhiều Vòng Tin Nhắn)
- 25. Vô hiệu hóa khách hàng trong Magento
- 26. Vô hiệu hóa Django Debugging cho Celery
- 27. git cách vô hiệu hóa push
- 28. Tin nhắn phát sóng trong cần tây
- 29. Phát hiện tin nhắn bánh mì nướng
- 30. Tạo một loại giá trị không thể vô hiệu hóa có thể vô hiệu hóa
Bản sao câu hỏi này http://stackoverflow.com/questions/5281365/selectively-turning-off-devises-flash-notices-in-rails-3 – Voldy