Удаленная форма внутри другой удаленной формы в Rails 3 отключает вложенную форму - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть форма remote внутри другой формы remote, подобная этой:

<%=form_for @myobj,:as=>:myobj,:url=>{:controller=>"my_controller",:action=>"first_action"},:remote=>true do |f|%>
   <%=form_for @myotherobj,:as=>:myotherobj,:url=>{:controller=>"my_controller",:action=>"second_action"},:remote=>true do |ff|%>
      <%=ff.submit "second"%>
   <%end%>
   <%=f.submit "first"%>
<%end%>

Но затем я нажимаю на вторую отправку, она не делает удаленный вызов, она делает обычныйвызов с приводит к ошибке Missing Template, потому что мое действие реагирует только на JS (Ajax Calls)

1 Ответ

3 голосов
/ 11 ноября 2011

Вложенные формы являются недействительными HTML.

Поведение браузера не определено, что делать в таком случае. Это все равно что пытаться использовать идентификаторы несколько раз внутри HTML-документа. Обычно это будет самое раннее вхождение идентификатора, который будет выбран document.getElementById, и здесь вы обнаружите, что самая внешняя (самая ранняя) форма - та, которая отправляет.

Если (по крайней мере) одна из форм отправляется с помощью javascript, то, вероятно, было бы лучше создать форму в другом месте и скопировать значения или переместить элементы формы перед отправкой.

...