Поймать ошибку для дочернего ресурса в Ruby on Rails - PullRequest
0 голосов
/ 20 апреля 2010

Каков наилучший способ добавления ошибок для рендеринга, если на самом деле имеет место дочерний ресурс, а не родительский ресурс? На английском языке я имею в виду следующее ... представьте следующий код:

@foo = Foo.new
foochild = Foochild.new
// break foochild somehow
@foo << foochild
@foo.save

сейчас, когда я делаю:

format.xml { render :xml => @foo.errors }

Все, что я получаю, это уведомление о том, что foochild недействителен. Он не содержит сообщения, которое должно содержаться в моем методе validates_format_of. Как заставить его показать, что сообщение вместо универсального foochild недопустимо? Есть ли что-то, что я должен сделать, чтобы это сообщение всплыло на его родительском ресурсе для отображения в @ foo.errors?

1 Ответ

1 голос
/ 20 апреля 2010

Всегда используйте «validates_associated» для этого типа разработки. Например в вашем контроллере

@foo = Foo.new


@foochild = @foo.foo_childs.build

if @foo.save


else 
  format.xml { render :xml => @foo.errors }
end

и по вашему мнению

<%= error_messages_for :foo, :foo_child %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...