Ruby on rails 从'form_for'迁移到新的'form_with'`
如何从的表格转换为的表格,以满足以下要求:Ruby on rails 从'form_for'迁移到新的'form_with'`,ruby-on-rails,devise,form-for,Ruby On Rails,Devise,Form For,如何从的表格转换为的表格,以满足以下要求: <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %> 我查看了Rails的表单和文档,但没有找到任何相关的示例 谢谢 试试看 =带模型的表单:资源,范围:资源\u名称, url:密码路径(资源名称),方法::post do | f| 另外,form_with不会为元
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
我查看了Rails的表单和文档,但没有找到任何相关的示例
谢谢 试试看
=带模型的表单:资源,范围:资源\u名称,
url:密码路径(资源名称),方法::post do | f|
另外,form_with
不会为元素生成类和ID,如果您需要,请手动添加它们
文档比目前的指南要详细得多。form\u with
具有范围:
选项,可更改输入名称前缀、ID和标签的for属性。据我所知,它与As:
选项的表单的功能完全相同
:作用域
-为输入字段名称加前缀的作用域,以及如何加前缀
提交的参数在控制器中分组
# Adding a scope prefixes the input field names:
<%= form_with scope: :post, url: posts_path do |form| %>
<%= form.text_field :title %>
<% end %>
# =>
<form action="/posts" method="post" data-remote="true">
<input type="text" name="post[title]">
</form>
#添加作用域将作为输入字段名称的前缀:
# =>
因此,等价的调用是:
<%= form_with(
model: resource,
scope: resource_name,
url: password_path(resource_name),
method: :post
) do |f| %>
您可以在这里找到很多示例:在Rails 5.1中引入form_with之前,它的功能通常在form_标记和form_for之间进行分割。这两种方法现在都已被弃用。无论使用form\u for
的代码是什么,都应该使用form\u with
我知道@Thang,但是它们的语法有点不同。您缺少as:resource\u name
选项。我猜这是Desive提供的,它使用它来使表单键通用,而不是从模型上取下键。感谢您的输入@事实上,这正是我找不到任何例子的部分。干杯