在Rails 5.1中,所有表单都必须使用form_with完成.在
http://edgeguides.rubyonrails.org/5_1_release_notes.html#unification-of-form-for-and-form-tag-into-form-with中,我只能找到与模型相关的表格示例.
使用form_with在Rails 5.1中完成此Rails 5.0表单的正确方法是什么?
<%= form_tag("/search",method: "get") do %> <%= label_tag(:q,"Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Search") %> <% end %>
解决方法
这是form_with调用,它完全等同于问题中的form_tag调用:
<%= form_with url: '/search',method: :get,local: true do |f| %> <%= f.label :q,"Search for:" %> <%= f.text_field :q,id: :q %> <%= f.submit "Search" %> <% end %>
请注意,默认情况下,form_with通过XHR(a.k.a remote:true)发送,您必须添加local:true以使其行为类似于form_tag的默认远程:false.
在rails guides,API docs和this github issue discussion中查看更多相关信息.