我有一个使用'nested_form'gem的简单嵌套表单。
看起来像这样:
<%= nested_form_for @user do |f| %>
<%= f.text_field :username, :size => 25 %>
<%= f.fields_for :teams do |team_form| %>
<%= team_form.label :team_name, 'Name of your team' %>
<% end %>
<%= f.submit :value =>'submit' %>
<% end %>
现在我想在我的新动作中预填充字段。虽然用@user.username = "someone"
填充用户名字段很容易,但我不知道如何在嵌套的“team_form”中访问第一个嵌套字段“team_name”。
在html中,字段如下所示:
<input id="user_teams_attributes_0_team_name" type="text" name="user[teams_attributes][0][team_name]">
如何预先填充此嵌套字段?
答案 0 :(得分:2)
通常build
可以在您的控制器中使用(因为它不会导致save
对象上的@user
,附加新{ {1}} Team
对象上的:teams
集合的实例。在你的行动中
@user
其中@user = User.new
@user.teams = [ Team.build(...) ]
包含将以嵌套形式显示的...
的默认属性。