在 Rails Ruby 中自动填充嵌套表单字段的第一个实例
Auto Populating the first instance of a nested form field in Ruby on Rails
使用 Ruby 2.3.3 和 Rails 5.1.4
我有一个供用户填写的表单,它使用嵌套表单字段 Gem 允许用户添加动态数量的群组成员。我希望在加载表单时第一个实例已经填写并填充为 current_user.email
这是我的 class 组
class Group < ApplicationRecord
has_many :teammates, dependent: :destroy
accepts_nested_attributes_for :teammates, allow_destroy: true
end
这是我的表格
<%= form_with(model: group, local: true) do |form| %>
<div class="form-group row">
<%= form.nested_fields_for :teammates do |member| %>
<div align="right" class="col-md-3">
<label>Group Member: </label>
</div>
<div class="col-md-6">
<%= member.text_field :email, placeholder: 'email', class: 'input' %>
<%= member.remove_nested_fields_link %> <br />
</div>
<%end %>
<%= form.add_nested_fields_link :teammates, '+ Add a Group Member', id: 'addGroupMember' %>
</div>
一般是这样的
class GroupsController
def edit
@group.teammates.build(email: current_user.email)
end
end
您只构建了一个队友对象,尚未保存。但足以让表单看到它并相应地呈现自己。
使用 Ruby 2.3.3 和 Rails 5.1.4
我有一个供用户填写的表单,它使用嵌套表单字段 Gem 允许用户添加动态数量的群组成员。我希望在加载表单时第一个实例已经填写并填充为 current_user.email
这是我的 class 组
class Group < ApplicationRecord
has_many :teammates, dependent: :destroy
accepts_nested_attributes_for :teammates, allow_destroy: true
end
这是我的表格
<%= form_with(model: group, local: true) do |form| %>
<div class="form-group row">
<%= form.nested_fields_for :teammates do |member| %>
<div align="right" class="col-md-3">
<label>Group Member: </label>
</div>
<div class="col-md-6">
<%= member.text_field :email, placeholder: 'email', class: 'input' %>
<%= member.remove_nested_fields_link %> <br />
</div>
<%end %>
<%= form.add_nested_fields_link :teammates, '+ Add a Group Member', id: 'addGroupMember' %>
</div>
一般是这样的
class GroupsController
def edit
@group.teammates.build(email: current_user.email)
end
end
您只构建了一个队友对象,尚未保存。但足以让表单看到它并相应地呈现自己。