Руби на рельсах - PullRequest
       11

Руби на рельсах

0 голосов
/ 09 марта 2011

Допустим, в рубашке произошла ошибка. ошибка появится также в person.errors? и если так, как я могу добраться до него? (я не хочу использовать person.shirt.errors)

class Person < ActiveRecord::Base
      has_one   : shirt
      has_many  : pants
      validates :name, :presence => true
      validates_length_of :name, :minimum => 3
end

person = Person.new(:name => "JD")
person.shirt.create(:color=> "red")
person.pants.create(:type=> "jeans")
person.valid?

Ответы [ 2 ]

0 голосов
/ 09 марта 2011

Должен загрузиться в "person.errors".Вы можете связаться с ним по телефону

person.errors.at(:<replace_this_with_name_of_attribute>)

Вы также можете позвонить по номеру

person.errors.each { |attr, msg| puts "attr = '#{attr}', msg = '#{msg}'" }

, чтобы проверить все имена атрибутов ошибок и соответствующие сообщения об ошибках.Удачи!

0 голосов
/ 09 марта 2011

Согласно этому сообщению, кажется, что ошибки дочерних объектов будут скопированы в родительский объект во время сохранения, см. здесь -> раздел валидации , хотя это могло быть изменено с

Validations simply work as you'd expect; 
#valid? will also validate nested models, 
#save(false) will save without validations, etc.

The only thing to note is that all error messages 
from the nested models are copied to the parent errors 
object for error_messages_for. This will probably change 
in the future, as discussed on the ticket, but that's 
outside of the scope of this patch.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...