ssc*_*rus 8 ruby-on-rails formtastic ruby-on-rails-3
在Formtastic文档中,它讨论了为基本错误添加一行:
<%= semantic_form_for @record do |form| %>
<%= form.semantic_errors :base %>
...main body of form...
<% end %>
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,Formtastic将包括对特定领域错误的毫不费力的支持,但默认情况下,它没有提供这样的调整base.1)你知道这是什么原因吗?
2)在我的情况下,我希望我的所有表单在表单开始后立即包含基本错误.对于所有表格,我有没有办法通过'默认'来形成这种形式?
Joh*_*ian 13
如果要显示所有基本错误以及嵌套属性的任何和所有错误:
f.semantic_errors *f.object.errors.keys
回答来自:https: //github.com/gregbell/active_admin/pull/905
小智 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
Run Code Online (Sandbox Code Playgroud)
创建/更新失败时的 @user.errors 对象将如下所示:
#<ActiveModel::Errors:0x0000000
@base=#<User id:1, name: "">,
@messages={:name => ["can't be blank"]}>
Run Code Online (Sandbox Code Playgroud)
如果您要像这样制作表单,它将输出 :name 属性的错误。
<%= semantic_form_for @user do |form| %>
<%= form.semantic_errors :name %>
...main body of form...
<% end %>
Run Code Online (Sandbox Code Playgroud)
这是一个模拟示例,但您明白我的意思。
不幸的是,目前格式代码库中没有任何内容支持 Rails 3 的“全部”选项(同样,我正在使用 Rails 3.2)
| 归档时间: |
|
| 查看次数: |
4166 次 |
| 最近记录: |