Итак, каждый рельсовый проект, с которым я сталкивался, сталкивался с этой проблемой, и был бы очень признателен, если бы кто-то смог меня просветить:
При "нормальной" настройке, когда форма находится в представлении, непосредственно связанном с URL / контроллером, это довольно просто, при ошибке render => :action
при отображении появляется сообщение проверки.
Теперь у меня есть форма в частичном сеансе на странице, URL / контроллер которой является show /: id, а не действие создания формы, проверка запускается, но я не могу отобразить сообщение проверки, потому что я не могу вызвать правильное действие рендеринга ...
CLOSEST, я получил, это render => @object, но нет css / layout, я могу передать сообщение через редирект с помощью flash [], но это не так, как и в сообщениях об ошибках jquery / client ...
Так, как я могу "аккуратно" отображать сообщения проверки формы в частичном (под другим контроллером / действием, чем родительская страница)?
(заранее спасибо за помощь)
edit: не могу вставить реальную вещь сейчас, но я сделаю все возможное, чтобы объяснить
У меня есть главная страница, например article / show / 01, на этой странице находится содержание статьи (@article), а затем внизу страницы находится частичный _commentform с формой для публикации комментария. Эта форма связана с действием Создать другого контроллера (контроллера комментариев).
Теперь, если бы форма была на собственной странице / URL-адресе вместо частичной, скажем / комментируйте / создавайте, я бы просто сделал:
if @comment.save
redirect_to @comment
else
render => :create
end
и проверка будет отображаться нормально.
В моем случае форма частично указана для URL article / show / 01, что должно быть эквивалентно приведенному выше коду, чтобы при сбое валидации сообщения об ошибках отображались на родительском URL, например, "render article / show". / 01 "?
Я уверен, что это легко, но я не могу заставить его работать (я просто могу перенаправить при успехе, но не могу отобразить ошибки с рендером)