Rails Nested Attributes Validation Failing

Mam zagnieżdżone atrybuty dla modelu Rails, a sprawdzanie poprawności powiązań kończy się niepowodzeniem z jakiegoś powodu. Nie używam accepts_nested_attributes_for, ale robię coś bardzo podobnego.

class Project < ActiveRecord::Base
  has_many :project_attributes

  def name
    project_attributes.find_by_name("name")
  end

  def name=(val)
    attribute = project_attributes.find_by_name("name")

    if attribute
      attribute.value = val
    else
      project_attributes.build(:name=>"name", :value=>val)
    end
  end
end

class ProjectAttribute < ActiveRecord::Base
  belongs_to :project

  validates_presence_of :name
  validates_uniqueness_of :name, :scope => :project_id

  validates_presence_of :project_id, :unless => lambda {|attribute| attribute.project.try(:valid?)}
  validates_associated :project

end

To wymyślony przykład, ale podobny do tego, co próbuję zrobić. Przyjrzałem się temu, co robi accepts_nested_attributes_for i używa metody kompilacji, która, jak sądziłem, powiązałaby wbudowany atrybut z projektem.

Ja też spojrzałemaccepts_nested_attributes_dla niepowodzenia sprawdzania poprawności powiązania dziecka co dało mivalidates_presence_of :unless=>valid?

Jakieś pomysły, jak to zrobić?

questionAnswers(2)

yourAnswerToTheQuestion