Я использую build
, fields_for
и accepts_nested_attributes_for
, чтобы создать новую регистрационную записку в той же форме, что и новая регистрация (имеется много регистрационных заметок). Отлично.
Проблема: в форме редактирования для существующей регистрации я хочу создать новую регистрационную заметку, но я не хочу видеть поле для каждой из существующих регистрационных заметок.
У меня есть это
class Registration < ActiveRecord::Base
attr_accessible :foo, :bar, :registration_notes_attributes
has_many :registration_notes
accepts_nested_attributes_for :registration_notes
end
и этот
class RegistrationsController < ApplicationController
def edit
@registration = Registration.find(params[:id])
@registration.registration_notes.build
end
end
и в представлении я делаю это:
<%= form_for @registration do |r| %>
<%= r.text_field :foo %>
<%= r.text_field :bar %>
<%= r.fields_for :registration_notes do |n| %>
<%= n.text_area :content %>
<% end %>
<% end %>
и он создает пустую текстовую область для новой регистрационной заметки (хорошо) и каждую существующую регистрационную записку для этой регистрации (нет благодарности).
Есть ли способ создать новую заметку для этой регистрации и оставить только существующие?