2011-08-23 16 views
7

, bu baz hatalar için bir satır ekleyerek bahsediyor: Bu Formtastic alan özel hatalar için ancak varsayılan olarak zahmetsiz desteğini yer alacağını Kafamı kurcalayanFormtastic'in ve baz hataları Formtastic'in docs yılında

<%= semantic_form_for @record do |form| %> 
    <%= form.semantic_errors :base %> 
    ...main body of form... 
<% end %> 

, bu hayır sunuyor base için böyle bir konaklama. 1) Bunun için nedenlerin ne olduğunu biliyor musunuz?

2) Durumumda, formların tamamlanmasından hemen sonra tüm formlarımın temel hataları içermesini istiyorum. Bütün formlar için bunu 'varsayılan' yaparak formtastic almanın bir yolu var mı?

cevap

3

Formtastic 2.x'te, semantic_errors HER ZAMAN şunları içerir: temel. Ancak, Rails 3'te (Rails 3.2'deyim) doğrulamalardan gelen hata iletilerinin artık öznitelik tarafından depolanmak yerine artık depolanmayacağını fark ettim. Örneğin, bu sınıfla:

class User < ActiveRecord::Base 
    # has a name attribute 
    validates :name, :presence => true, :uniqueness => true 
end 

Sizin @ user.errors şu şekilde görünecektir bir oluşturmak başarısız/güncelleme üzerine itiraz:

#<ActiveModel::Errors:0x0000000 
    @base=#<User id:1, name: "">, 
    @messages={:name => ["can't be blank"]}> 

böyle formunuzu yapmak olsaydı, olurdu name özniteliği için hata çıktı.

<%= semantic_form_for @user do |form| %> 
    <%= form.semantic_errors :name %> 
    ...main body of form... 
<% end %> 

Bu sahte örnektir, ama ne demek istediğini anlıyorum.

Maalesef şu anda bu size her türlü ile birlikte tüm baz hatalarını görüntülemek isterseniz

İlgili konular