正如問題的標題所問,我有興趣知道使用flash[:error]
,flash[:alert]
和flash[:notice]
時是否有任何區別。如果是這樣,什麼時候使用它們是合適的,爲什麼?使用閃光燈有什麼不同:錯誤,:警報和:通知?
回答
閃光燈是Rails機制,以跨越2個請求仍然存在的一些信息。您可以在一個請求中設置閃存哈希中的某些內容,並在您從同一客戶端收到的下一個請求中提供。
由於flash只是一個「散列」,因此您可以像使用它一樣使用它。這意味着您可以提供您的首選密鑰(:alert /:error /:notice),並將您希望的任何消息字符串作爲值。
什麼或何時使用的語義:alert /:error /:notice是真的由您來管理。話雖如此,一般的最佳做法是使用:注意事情是OKAY並以綠色色調顯示,並在事情不是OKAY時使用:錯誤並以紅色色調顯示。如果您想要使用以下內容,則完全可以:警告您的網絡應用中的其他類型的消息。我以前用它來提供黃色色調的信息。
它們只是不同的分類。我主要使用:error
和:notice
。注意我使用信息性消息(「您的密碼已更改」,「已保存的更改」等)。我保留:error
關鍵的事情/問題(「您的密碼不匹配」,「登錄失敗」等)
這只是一個分類。它產生的股利#error.error或DIV#notice.notice你連接你想要的邏輯之上
豆蔻樣本:
.alert, .error, .notice, .success { padding:.8em 0; margin:0 0 2px 0; border:2px solid #ddd; font-size:1.6em; text-align:center;}
.error { background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4; }
.notice { background:#FFF6BF;color:#514721;border-color:#FFD324; }
.success { background:#DDFCD5;color:#000;border-color:#44A815; }
.alert { background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4; }
.error a {color:#8a1f11;}
.notice a {color:#514721;}
.success a {color:#264409;}
.alert a {color:#8a1f11;}
我也使用:message
類也傳遞在我的異常處理程序中捕獲的StandardError
消息。使用2或3個類可以顯示多達多條消息以響應單個事件或結果,每個消息傳達結果的不同方面,例如,信息,基於應用程序知道的錯誤和基於系統知道的錯誤。
:alert
和:notice
在功能上與您發明的其他鍵不同。 FlashHash
提供了兩種便利訪問器:flash.alert
,flash.notice
。 Rails對這兩款產品的偏好進一步提升至redirect_to
,該產品只接受:alert
,:notice
或:flash
。
但是,邊緣Rails的commit in July 2012允許添加其他Flash類型的權限。下面是軌道4,5添加自定義閃存類型的例子:
# app/controllers/application_controller.rb
class ApplicationController; add_flash_types(:error, :annoyance); end
# app/controllers/monopoly_controller.rb
class MonopolyController < ApplicationController
def chance
...
redirect_to haha_path, annoyance: "Go directly to jail. Do not pass Go. Do not collect $200."
end
end
# app/views/haha/index.html.erb
<%= annoyance %>
- 1. 閃光燈[:通知]閃光燈[:錯誤] +刷新按鈕=消失
- 2. Android通知閃光燈不起作用
- 3. 哪個使用權?閃光燈[:通知] vs:通知?
- 4. 閃光燈 - 錯誤1014
- 5. 爲什麼有時設計使用閃光燈[:警告]有時resource.errors.error_messages
- 6. 使用閃光燈
- 7. Rails錯誤和通知閃光燈無法正確顯示與CSS樣式
- 8. 使用閃光燈通知用戶以前的註冊
- 9. Instagram的閃光燈安全錯誤
- 10. 爲什麼閃光燈被淘汰?
- 11. respond_with&閃光通知
- 12. 十月CMS |如何關閉閃光燈消息或警報
- 13. Rails 4 - 使用純文本和ERB的閃光警報
- 14. 閃光燈
- 15. Qt/webkit和閃光燈
- 16. 提琴手和閃光燈?
- 17. 報警通知
- 18. 閃光燈不會在IE
- 19. perl的mojolicious - 使用閃光燈給人奇怪的錯誤
- 20. Rails的 - 通過可變閃光燈通知
- 21. GameSpot中使用了什麼閃光燈滑塊?
- 22. 使用AC_FL_RunContent嵌入閃光燈僅在IE8中使用閃光作物閃光燈
- 23. OpenGL ES強光閃光燈
- 24. 顯示閃光燈
- 25. fancybox在閃光燈
- 26. 驗證錯誤驗證一個頁面,有閃光燈對象
- 27. 我的應用的APK和閃光燈
- 28. 安卓應用閃光燈
- 29. 是否可以使用閃光燈將圖像上傳到閃光燈?
- 30. 設置多個警報/通知錯誤/錯誤?
雖然選擇的答案是更多解釋有關使用三種類型的提示信息的目的,我想你對生成的標記的解釋,它可以很容易地與改進的用戶界面的CSS樣式相關聯。謝謝。 – 2011-04-27 17:51:20