Mongoid acceptpts_nested_attributes_ для сохранения родителя, когда child недопустим - PullRequest
1 голос
/ 12 января 2012

Я пытаюсь использовать 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

Так что, в основном, я передаю действительную организацию и недопустимого пользователя. Конечным результатом является то, что организация создана должным образом, несмотря на то, что информация пользователя недействительна. Мысли?

1 Ответ

0 голосов
/ 13 января 2012

Как оказалось, проблема заключалась в том, что я не указывал :autosave => true в моей has_many :users ассоциации.Конечный результат состоял в том, что это создаст организацию и никогда не будет пытаться сохранить связанного пользователя, таким образом, не зная, что это было недействительно.Когда у меня установлен флаг :autosave на true, а пользователь недействителен, организация не сохраняется.

...