Ruby on rails Rails 5.1中带有搜索字段的表单_

Ruby on rails Rails 5.1中带有搜索字段的表单_,ruby-on-rails,ruby-on-rails-5,ruby-on-rails-5.1,Ruby On Rails,Ruby On Rails 5,Ruby On Rails 5.1,在Rails 5.1中,所有表单都必须使用form\u with完成。在中,我只能找到与模型相关的表单示例 Rails 5.0表单在Rails 5.1中使用form_with的正确方式是什么 <%= form_tag("/search", method: "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Sear

在Rails 5.1中,所有表单都必须使用
form\u with
完成。在中,我只能找到与模型相关的表单示例

Rails 5.0表单在Rails 5.1中使用
form_with
的正确方式是什么

<%= form_tag("/search", method: "get") do %>
  <%= label_tag(:q, "Search for:") %>
  <%= text_field_tag(:q) %>
  <%= submit_tag("Search") %>
<% end %>

您可以将
表单\u与
一起使用,如下所示:

<%= form_with(url: '/search') do |f| %>
  <%= f.label(:q, "Search for:") %>
  <%= f.text_field(:q, id: :q) %>
  <%= f.submit("Search") %>
<% end %>

这是带有调用的
表单,它与问题的
表单标签
调用完全相同:

<%= 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_是通过XHR发送的(也称为
remote:true
),您必须添加
local:true
,使其行为类似于
form_标签
的默认值
remote:false


有关它的更多信息,请参见和。

带有
的form_是
rails 5.1
中的更新功能及其在rails中创建表单的统一方式。它可以用作
form_,或者
带有
的form_,并包含某些选项

:url-表单提交到的url。类似于传递给url\u的值或链接到的值。例如,您可以直接使用命名管线。当传递:scope而不传递:url时,表单只提交到当前url

:方法-提交表单时使用的方法,通常为“获取”或“发布”。如果使用了“patch”、“put”、“delete”或其他动词,则会添加一个名为_method的隐藏输入来模拟post上的动词

:格式-表单提交到的路由的格式。在提交到其他资源类型(如:json)时非常有用。如果传递了:url,则跳过

:作用域-为输入字段名称添加前缀的作用域,以及提交的参数在控制器中的分组方式

:model-用于推断:url和:scope by,以及填写输入字段值的模型对象。因此,如果标题属性设置为“Ahoy!”,则标题输入字段的值将为“Ahoy!”。如果模型是一个新记录,则生成一个创建表单,但是如果是一个现有记录,则生成一个更新表单。传递:scope或:url以覆盖默认值。例如,将params[:post]转换为params[:article]

:真实性\u令牌-表单中使用的真实性令牌。使用自定义真实性令牌覆盖或传递false以完全跳过真实性令牌字段。在提交到外部资源(如支付网关)时非常有用,可能会限制有效字段。远程表单可以通过将config.action\u view.embed\u authenticity\u token\u in\u Remote\u forms=false来忽略嵌入的真实性令牌。这在片段缓存表单时非常有用。远程表单从meta标记中获取真实性标记,因此除非您支持没有JavaScript的浏览器,否则不需要嵌入

:本地-默认情况下,表单提交是远程的、非结构化的XHR。 使用local:true禁用远程提交

:跳过utf8-默认情况下,输出名为utf8的隐藏字段 执行UTF-8提交。设置为true可跳过该字段

:生成器-覆盖用于生成表单的对象

:id-可选的HTML id属性

:class-可选的HTML类属性

:数据-可选的HTML数据属性

:html-表单标记的其他可选html属性

例子 与相关资源

例如,如果您的资源定义了关联,则如果路线设置正确,您希望向文档添加注释:

<%= form_with(model: [ @document, Comment.new ]) do |form| %>
  ...
<% end %> 

...

欲了解更多信息,请签出

您拯救了我的一天!
<%= form_with(model: [ :admin, @post ]) do |form| %>
  ...
<% end %>
<%= form_with(model: [ @document, Comment.new ]) do |form| %>
  ...
<% end %>