2012-11-15 18 views
5

Rails 3'ü mongoid 2 ile kullanıyorum ve moğol validasyonu ile ilgili basit bir soru var.Basit Mongoid Doğrulama! - Hata mesajlarının nasıl görüntüleneceği

if @forum.topics.create!(name: params[:topic][:name]) 
    # success, do something 
else 
    #should handle errors but doesn't 
    render 'new' 
end 

.create! yöntem, doğru bir mongoid model sınıfında doğrulamaları çalıştırır, ancak hatayı görüntülemek için başka bir bloğa gitmiyor. İsim boş olamaz - Bunun yerine #

Doğrulama başarısız oluşturmak

Mongoid :: Hatalar

:: Doğrulamaları TopicsController içinde ... diyerek bir raylar hata sayfası döndürür.

Bu iyi, ancak çirkin raylar hata mesajı sayfası almak yerine bunu bir görünümde nasıl görüntüleyebilirim? Aşağıdaki gibi biçimlendirmesi bir Hash olan

new_topic = @forum.topics.new(name: params[:topic][:name]) 
if new_topic.save 
    # success, do something 
else 
    render 'new', errors: new_topic.errors.full_messages 
end 

bu yolla yerel değişken errors olacaktır:

+1

'@ forum.topics.new (isimle deneyin : params [: topic] [: name]). Eğer bunu bir cevap olarak kabul etmek istiyorsanız, aslında Yoshiji'de çalışan – MrYoshiji

+0

, teşekkürler. – HelloWorld

+0

Rica ederim :) – MrYoshiji

cevap

5

bu şekilde deneyin

new_topic.errors.full_messages # => ["\"Name\" can't be blank"] 
+0

Bu bir dizi değil, bir karma, hayır? – Geoffroy

İlgili konular