如何将form_for
转换为form_with
:
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
我看过Rails的form_with
文档,但没有找到任何相关的例子。
谢谢你,谢谢
如何将form_for
转换为form_with
:
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
我看过Rails的form_with
文档,但没有找到任何相关的例子。
谢谢你,谢谢
3条答案
按热度按时间xfyts7mz1#
form_with
具有scope:
选项,用于更改输入名称前缀、id和标签的for属性。据我所知,它与form_for
的as:
选项完全相同。:scope
-输入字段名称的前缀范围,以及提交的参数如何在控制器中分组。https://api.rubyonrails.org/v6.0.0/classes/ActionView/Helpers/FormHelper.html#method-i-form_with
所以等价的调用是:
csbfibhn2#
尝试
form_with
也不会为元素生成类和id,如果你需要的话-手动添加它们目前API中的文档比指南中的要详细得多。
ux6nzvsh3#
在这种情况下,您不必担心
as: resource_name
和html: { method: :post }
。只需在form_with
中使用model: resource
,就可以了。根据文件:
model
同时推断URL和作用域。所以,用这个
相当于这样的东西:
但是由于Devise使用了不同的帮助器方法,在本例中为
password_path
,以生成特定的URL。您只需要在form_with
中使用url:
选项沿着model:
,如下所示:将生成类似于: