【发布时间】:2013-03-31 03:38:33
【问题描述】:
我是 Rails 新手,因此非常感谢任何建议。
我有一个带有嵌套属性地址的类条目,
/app/models/entry.rb
class Entry < ActiveRecord::Base
has_many :addresses, :dependent => :destroy
accepts_nested_attributes_for :addresses,
:allow_destroy => true,
:reject_if => :all_blank
end
像这样的类地址
/app/models/address.rb
class Address < ActiveRecord::Base
belongs_to :entry
validates :zip, :presence => true
end
在嵌套形式中我有
/app/view/entries/_form.html.slim
= simple_form_for(@entry) do |f|
= f.error_notification
- @entry.addresses.build
.form-inputs
= f.simple_fields_for :addresses do |address|
= render 'address_form', :f => address
这个想法是,当呈现表单时,“构建”将在数据库中列出的当前地址之外创建一个空的“地址”。保存更改后,如果新创建的地址仍为空,则会被拒绝,不会保存到数据库中。
但是 address.rb 中的验证是在保存之前进行验证,因此用户无法继续进行保存操作。有什么我遗漏的吗?
【问题讨论】:
标签: ruby-on-rails validation nested-attributes