Из тонкой инструкции :
[button_to
] Создает форму, содержащую одну кнопку, которая отправляет URL-адрес, созданный с помощью набора параметров.
Таким образом, использование button_to
внутри формы будет пытаться создать вложенную форму, но HTML-формы не будут вложенными. Результатом будет структура HTML примерно такая:
<form>
<form><!-- from button_to -->
<input type="submit">
</form>
<input type="submit"><!-- from f.submit -->
</form>
Но браузер игнорирует внутренний <form>
и предположит, что вы имели в виду это:
<form>
<input type="submit"><!-- from button_to -->
<input type="submit"><!-- from f.submit -->
</form>
Затем, нажав либо <input type="submit">
, вы отправите внешнюю форму.
Вы можете либо создать еще одну кнопку отправки во внешней форме, и контроллер может проверить, какая кнопка была нажата, или вы можете использовать link_to
и настроить ссылку так, чтобы она соответствовала вашей кнопке отправки (или оставить ее в стиле ссылки в зависимости от вашего предпочтение).