从 Rails 表单构建器获取输入名称



如何获取带有表单输入名称的字符串?

<%= form_with model: @post do |f| %>
<%= f.text_field :name %>
<!-- Will produce HTML <input type="text" id="post_name" name="post[name]" value="" /> -->
<% end %>

问题是如何在不生成输入名称的情况下获取输入名称的名称?这个例子应该是一个字符串"post[name]">

当你在form_with model: @post块中时,你可以像这样构建"post[name]"字符串:

"#{dom_class(f.object)}[name]"

查看dom_class的文档

您可能正在寻找的是object_name方法

f.object_name应该返回"post"

它也适用于多个嵌套fields_for

<%= form_with model: @team do |team| %>
<%= team.fields_for :players do |player| %>
<%# for 1st player: player.object_name #=> "team[players_attributes][0]" %>
<% end %>

无论您的情况如何,您仍然必须在括号"[field_name]"之间连接字段名称,以便您可以轻松地为输入的字段构建正确的名称

最新更新