我已经生成了一个脚手架,我们称之为脚手架测试。在那个脚手架中,我有一个 _form.html.erb 正在为动作的 :new => :create 和 :edit => :update 渲染
Rails 有时会做很多魔术,我无法弄清楚 form_for 是如何知道在 :new 和 :edit 之间按下提交时如何调用正确的 :action
脚手架形式
<%= 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' %>
如您所见,表单之间没有区别两个模板如何呈现相同的表单但使用不同的操作?