如何预填充嵌套表单字段

时间:2012-09-29 14:02:41

标签: ruby-on-rails

我有一个使用'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]">

如何预先填充此嵌套字段?

1 个答案:

答案 0 :(得分:2)

通常build可以在您的控制器中使用(因为它不会导致save对象上的@user ,附加新{ {1}} Team对象上的:teams集合的实例。在你的行动中

@user

其中@user = User.new @user.teams = [ Team.build(...) ] 包含将以嵌套形式显示的...的默认属性。