проверка формы с помощью RJS Rails - PullRequest
0 голосов
/ 30 марта 2011

У меня есть форма, которую я отправляю, используя тег remote_form_for.

Просмотр

<% form_remote_tag(:url => { :action => 'create' })  do %>

a bunch of fields

<% end %>

Контроллер

def create 

  if @greeting.can_save?
   respond_to do |format|
   format.html {redirect_to board_link(@board)}
   format.js #close the iframe and reload the parent
   end
  else
   respond_to do |format|
   format.html {redirect_to :action => 'new'}
   format.js #show the errors on the form
   end
  end
end

create.rjs

page << "parent.$.fancybox.close();"

Все работает нормально для формы, представленной с правильной информацией.Но мне нужно показывать сообщения об ошибках для неверных представлений.

Как показать сообщения об ошибках в форме, когда форма не проходит проверку?

Заранее спасибо.

1 Ответ

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

Вытяните форму в свою частичку, визуализируйте эту частичку на своей странице, придав форме уникальный идентификатор.

Внутри тегов формы вы должны отображать ошибки любым удобным для вас способом, будь то их перечисление или добавление классов в соответствующие поля.

Теперь сделайте что-то вроде следующего в вашем RJS:

if @greeting.valid?
  page << "parent.$.fancybox.close();"

else
  page.replace 'my_form_id', :partial => 'greetings/form'
end

Это переопределяет форму в случае ошибки. Убедитесь, что переменная экземпляра @greeting передана в эту форму, чтобы поля были заполнены правильно.

...