Ich verwende build
, fields_for
und accepts_nested_attributes_for
, um einen neuen Registrierungshinweis auf dem gleichen Formular wie eine neue Registrierung (hat viele Registrierungshinweise) zu erstellen. Groß.Wie bekomme ich Rails build und fields_for um nur einen neuen Datensatz zu erstellen und nicht existierende zu enthalten?
Problem: Im Bearbeitungsformular für die bestehende Registrierung möchte ich eine neue Registrierungsnotiz erstellen, aber ich möchte kein Feld für jede vorhandene Registrierungsnotiz sehen.
Ich habe diesen
class Registration < ActiveRecord::Base
attr_accessible :foo, :bar, :registration_notes_attributes
has_many :registration_notes
accepts_nested_attributes_for :registration_notes
end
und dies
class RegistrationsController < ApplicationController
def edit
@registration = Registration.find(params[:id])
@registration.registration_notes.build
end
end
und in der Ansicht Ich tue dies:
<%= 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 %>
und es wird einen leeren Textbereich für ein neuen zu schaffen Registrierungsschein (gut) und jeder bestehende Registrierungsvermerk für th bei der Registrierung (nein danke).
Gibt es eine Möglichkeit, nur eine neue Notiz für diese Registrierung zu erstellen und die vorhandenen in Ruhe zu lassen?
Ich glaube, er will um eine neue Registrierung zu erstellen _note', die zum Objekt @registration gehört. – Huy
Mein Verständnis war, dass er eine Notiz an die Bearbeitung angehängt haben möchte, so dass das Formular die Bearbeitung der Registrierung sowie das Erstellen einer neuen Registrierungsnotiz für einen Benutzer übernimmt, um verwandte Kommentare oder ähnliches zu hinterlassen. In diesem Fall würde ein separates Formular für die Note nicht funktionieren, würde es (wie es separat eingereicht werden müsste)? –
Ahhh, vielleicht ist es das, was er will. :) – Huy