2011-08-23 54 views
7

在Formtastic文檔,它談論增加對基誤差線:Formtastic和基誤差

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

這讓我爲難的是Formtastic將包括用於特定領域,錯誤,但默認情況下輕鬆的支持,它沒有提供這樣的住宿base1)你知道這是什麼原因嗎?

2)在我的情況下,我希望我的所有表單都能在表單開始後包含基本錯誤。有沒有辦法讓我通過所有形式的「默認」來獲得formtastic?

回答

3

在Formtastic 2.x中,semantic_errors始終包含:base。

但是,我注意到在Rails 3(我在Rails 3.2中)驗證錯誤消息不再存儲到基地,而是通過屬性存儲。例如,對於這個類:

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

你@ user.errors對象上的失敗創建/更新應該是這樣的:

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

如果你讓你的表格是這樣,它會輸出:name屬性的錯誤。

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

這是一個模擬的例子,但你明白我的意思。

不幸的是,沒有在formtastic代碼庫目前支持了Rails 3(再次,我用Rails 3.2)