2013-10-21 106 views
2

我正在使用Rails 4.0和twitter-bootstrap-rails gem,它在yield語句上方顯示帶有bootstrap_flash的通知。bootstrap_flash顯示模型錯誤消息

的一種方式,我把錯誤的錯誤集合是這樣的:

if there_is_an_error 
    msg = "You have an error here..." 
    self.errors.add(:base, msg) 
end 

這應該工作,因爲我旁邊顯示的具體項目內嵌的錯誤,所以我有沒有問題,據我所知。但我希望在窗體頂部上顯示驗證錯誤以及有時。

在窗體頂部顯示驗證錯誤消息的最佳方式是什麼,特別是在使用引導時?

回答

6

我通過快速,其作用如哈希做 - 閃光[:危險],閃速[:成功]等:

在相關的形式使用閃光燈[] redirect_to的前(閃存控制器。現在[]之前呈現)

flash[:success] = "Signup passed successful" 

和application.html.erb遍歷閃光散列(佈局)

<div class="container"> 
    ... 
    <% flash.each do |key, value| %> 
    <%= content_tag(:div, value, class: "alert alert-#{key}") %> 
    <% end %> 
    ... 

    <%= yield %> 
    ... 
</div> 

注意,你最好使用標準的引導:鍵(:sucess,:危險等)進行適當的AUTOMAGIC格式化 Alerts in Bootstrap 3

附:我個人使用thomas-mcdonald使用Bootstrap 3 gem bootstrap-sass,但方法也適用於您。引導2使用:錯誤,而不是:危險和.alert塊,而不是.alert

+0

你給了我一個非常全面和完整的答案。直接從箱子裏完成!我只是想知道爲什麼它不會默認顯示這些錯誤,我必須自己做flash.now []。 – mjnissim

+0

我想bc有人可能想跳過錯誤信息:) – Leger

0

您好bootstrap_flash被設計爲使用Rails的閃存方法。它可以進行配置以滿足您的需求,包括定位要顯示的特定容器。

就驗證而言,由於許多用戶正在實施他們自己的解決方案,通常是客戶端使用ajax從服務器獲取錯誤。我們沒有就什麼是正確的方法達成很多共識,所以我們將其排除在外,因爲其他圖書館都擅長。