Rails 3: почему пустая вложенная форма генерирует скрытое поле ввода? - PullRequest
1 голос
/ 20 декабря 2010

Почему это:

# edit.html.erb
<%= form_for @product do |f| %>
  <%= f.fields_for :shop do |sf| %>
    # Nothing here
  <% end %>
<% end %>

создает скрытое поле ввода:

<input type="hidden" value="23" name="product[shop_attributes][id]" id="product_shop_attributes_id">

?

Соответствующий код контроллера:

def edit
  @product = Product.find(params[:id])
end

1 Ответ

6 голосов
/ 20 декабря 2010

Это будет потому, что у редактируемого вами продукта есть магазин.Rails вставил это в fields_for, чтобы при отправке формы он знал, для какого магазина эти вложенные атрибуты.Это поведение вложенных атрибутов по умолчанию.

...