Ruby on rails Rails 5.1中带有搜索字段的表单_
在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
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 %>