Я сгенерировал эшафот, позвольте назвать его scaffold. Внутри этого эшафота у меня есть _form.html.erb, который отображается для действия: new =>: create and: edit =>: update
Rails иногда делает много магии, и я не могу понять, как form_for знает, как вызвать правильное: действие при нажатии submit между: new и: edit
Форма лесов
<%= form_for(@test) do |f| %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
против формы без леса
<% form_for @test :url => {:action => "new"}, :method => "post" do |f| %>
<%= f.submit %>
<% end %>
Изменить шаблон
<h1>Editing test</h1>
<%= render 'form' %>
Новый шаблон
<h1>New test</h1>
<%= render 'form' %>
Как вы можете видеть, нет никакой разницы между формами. Как оба шаблона могут отображать одну и ту же форму, но использовать разные действия?