Używam build
, fields_for
i accepts_nested_attributes_for
do tworzenia nowej notatki rejestracyjnej w tym samym formularzu, co nowa rejestracja (zawiera wiele not rejestracyjnych). Wspaniały.Jak uzyskać kompilację Railsów i fields_for, aby utworzyć tylko nowy rekord i nie uwzględniać istniejącego?
Problem: W formularzu edycji istniejącej rejestracji chcę utworzyć kolejną nową notatkę rejestracyjną, ale nie chcę widzieć pola dla każdego z istniejących dokumentów rejestracyjnych.
mam to
class Registration < ActiveRecord::Base
attr_accessible :foo, :bar, :registration_notes_attributes
has_many :registration_notes
accepts_nested_attributes_for :registration_notes
end
i to
class RegistrationsController < ApplicationController
def edit
@registration = Registration.find(params[:id])
@registration.registration_notes.build
end
end
iw widoku Robię to:
<%= 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 %>
i tworzy pusty obszar tekstu na nowy dowód rejestracyjny (dobry) i każdy istniejący dowód rejestracyjny dla przy rejestracji (nie, dziękuję).
Czy istnieje sposób na utworzenie nowej notatki dla tej rejestracji i pozostawienie istniejących tylko w spokoju?
wierzę chce utworzyć nową rejestrację _note', który należy do obiektu '@ registration'. – Huy
Moje zrozumienie polegało na tym, że chce dołączyć notatkę dołączoną do edycji, więc formularz przetwarza zmiany do rejestracji, a także tworzy nową notatkę rejestracyjną, umożliwiającą użytkownikowi pozostawienie powiązanych komentarzy lub tym podobnych. W takim przypadku oddzielny formularz dla notatki nie działałby, czy byłby (jak musiałby być składany osobno)? –
Ahhh, może tego właśnie chce. :) – Huy