2008-09-24 14 views
8

uygulaması benim aktif rekor nesneleri doğrulama yardımcıları kullanmak ve onlar harika. Bir sorun olduğunda, web sayfamda bireysel problemlerle birlikte "bu foobar'ın kaydedilmesini engellemek için 3 hata" standardını görüyorum.Rails? De "3 hata bu foobar'ın kaydedilmesini yasakladı" doğrulama mesajı nasıl değiştirilir? Benim raylar ise

kendi ile bu varsayılan mesajı geçersiz herhangi bir yolu var mı? model.errors hatalar yardımcı kullanmak yerine kendinizi karma üzerinde

cevap

11

Hataları görüntülemek için kullandığınız yardımcı olan error_messages_for yardımcısı, varsayılan başlık metnini değiştirmenize izin veren bir :header_message seçeneğini kabul eder. olduğu gibi: error_messages_for 'model', :header_message => "You have some errors that prevented saving this model"

RubyOnRails API

arkadaşın.

+0

Mükemmel bunu yapmak için KURU yolu ümit - teşekkürler! – RichH

+0

Değer belirtme: <% = f.error_messages: object_name => 'bilgileriniz'%> –

0

Sen yineleme yapabilirsiniz.

+0

Ben her durumda karma hataları üzerinden geçmekte düşündü ama orada modelde – RichH

1

Modelinizdeki "validates_" yöntemlerinin tümü genellikle geçirilebilir: message => "Doğrulama İletim" parametresi.

<% if([email protected]?) %> 
<div id="error_message">   
    <h2> 
    <%= image_tag("error.png", :align => "top", :alt => "Error") -%> 
    Oops, there was a problem editing your information. 
    </h2> 
    <%= short_error_messages_for(:model) %> 
</div> 
<% end %> 

Sonra application_helper I hatalar üzerinde yineleme ve basit bir liste oluşturmak:

Genellikle böyle bir şey hataları sarın

def short_error_messages_for(object_name) 
    object = instance_variable_get("@#{object_name}") 
    if object && !object.errors.empty? 
     content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) })  
    else 
     "" 
    end 
    end 

Bu kod oldukça eski ve Muhtemelen bu günlerde Ruby'yi nasıl yazacağımı değil ama sen özünü al.

İlgili konular