2014-09-24 69 views
0

經過幾個小時對我的嵌套屬性(圖像)進行各種驗證之後,我有了驗證,可以檢查要上傳的最少1個圖像。驗證帶有嵌套屬性的錯誤消息

class AnimalImage < ActiveRecord::Base 
mount_uploader :image, AnimalImageUploader 
belongs_to :animal 

validate :limit_num_of_images 

def limit_num_of_images 
    if image.size < 1 
    errors[:base] << "Please add an image" 
    end 
end 

end 

只是在這裏澄清一些東西,只要確認發生即時假設,如果使用nested_attributes檢查的順序父模型,然後孩子?你不必告訴它來檢查是否存在孩子驗證?

我的主要問題是錯誤消息的建設,似乎是設置錯誤[:基地]產生像這樣

Animal images base Please add an image 

我如何設置它使用戶只能看到一個錯誤信息以下爲他們的錯誤信息

Please add an image 

感謝

編輯

這就是我如何展示作爲一個快速解決我創建了一個幫手剝離從消息不需要文字在我看來

<% @animal.errors.full_messages.each do |msg| %> 
    <li><%= msg %></li> 
<% end %> 

雖然消息(不喜歡它,雖然過於哈克)

def error_edit(message) 
    msg = message 
    msg.gsub('Animal images base', ' ') 
end 

回答

0

根據Docs

errors.add(:base, "Message") 

在您的例子:

class AnimalImage < ActiveRecord::Base 
mount_uploader :image, AnimalImageUploader 
belongs_to :animal 

validate :limit_num_of_images 

def limit_num_of_images 
    if image.size < 1 
    errors.add(:base, "Please add an image") 
    end 
end 

end 
+0

不工作,要麼我害怕仍然得到「動物圖像庫請添加圖像」作爲錯誤信息 – Richlewis 2014-09-25 09:09:13

+0

如何檢索這些消息? – lcguida 2014-09-25 13:14:56

+0

我用我的觀點和我已經實現的一個快速修復更新了這個問題 – Richlewis 2014-09-25 13:20:26