我正在尝试使用accepts_nested_attributes_for
在创建User
期间创建Organization
。我的问题是即使嵌套的Organization
信息无效,也会创建User
(假设它有有效信息)。
我的模特看起来像这样:
class Organization
include Mongoid::Document
attr_accessible :name, :users_attributes
field :name, :type => String
has_many :users, dependent: :destroy
accepts_nested_attributes_for :users, :limit => 1
validates_presence_of :name
end
class User
include Mongoid::Document
authenticates_with_sorcery!
attr_accessible :email, :password, :password_confirmation
field :email, type: String
validates_confirmation_of :password, :if => :password
validates_presence_of :password, :on => :create
validates :password, :length => { :minimum => 6 }
validates_presence_of :password_confirmation, :if => :password
validates_presence_of :email
validates_uniqueness_of :email
belongs_to :organization
end
所以基本上,我传入一个有效的组织和一个无效的用户。最终结果是尽管用户信息无效,组织仍然正确创建。想法?
答案 0 :(得分:0)
事实证明,这里的问题是我没有在:autosave => true
关联上指定has_many :users
。最终结果是它将创建组织并且从不尝试保存关联用户,因此不知道它是无效的。当我将:autosave
标志设置为true且用户无效时,组织不会保存。