编辑现有对象并在rails 3中添加新的依赖对象(嵌套表单)

时间:2011-03-09 14:58:04

标签: ruby-on-rails ruby-on-rails-3

通常我只是使用类似的东西 http://railscasts.com/episodes/196-nested-model-form-part-1

现在我有一个现有用户,我正在尝试添加汽车和动画。用户has_many汽车和annimals和accepts_nested_attributes_for汽车和annimals

如果我这样做

= form_for(@user) do |f|
  = f.fields_for @user.cars.build do |c|

我收到错误:

  

未知属性:汽车

如果我这样做

= form_for(@user) do |f|
  = f.fields_for :cars do |c|

我得到该用户所有现有汽车的清单(当我想换新车时)

Thannks!

ps:我想我应该添加,我正在使用simple_form_for和simple_fields_for,这可能是一个错误......

1 个答案:

答案 0 :(得分:3)

我发现的rails api深处:

  

也可以指定要使用的实例:

  <%= form_for @person do |person_form| %>
    ...
    <% @person.projects.each do |project| %>
      <% if project.active? %>
        <%= person_form.fields_for :projects, project do |project_fields| %>
          Name: <%= project_fields.text_field :name %>
        <% end %>
      <% end %>
    <% end %>
  <% end %>

所以在我的情况下,我猜语法将是

= form_for(@user) do |f|
  = f.fields_for :cars, @user.cars.build do |c|