Rails 4 aktualisiert NICHT verschachtelte Attribute

Problem: AnstattAktualisierung verschachtelte Attribute sind sieerstellt zusätzlich zu den vorhandenen verschachtelten Attributen, wenn ich auf die Schaltfläche drücke#update Aktion des assoziiertenfeatures_controller.rb

Mögliche Ursache: Ich denke, das Problem liegt in meinem Unverständnis in Rails 'form_for. Ich denke, die Aufschlüsselung ist in meinen Ansichten, wie ich die persistierenden verschachtelten Attribute rendere, und / oderWie kann ich die ID des verschachtelten Attributs nicht angeben, sodass es einfach eine neue erstellt?

feature.rb

class Feature < ActiveRecord::Base
  ...
  has_many :scenarios
  accepts_nested_attributes_for :scenarios,
    allow_destroy: true,
    reject_if: :all_blank
  ...
end

features_controller.rb

def update
  ...
  project = Project.find(params[:project_id])
  @feature = Feature.find(params[:id])

  if @feature.update_attributes(feature_params)
    # checking feature_params looks good...
    # feature_params['scenarios'] => { <correct object hash> }

    redirect_to project
  else
    render :edit
  end
end

...

private
def feature_params
  params.require(:feature).permit(:title, :narrative, :price, :eta, scenarios_attributes[:description, :_destroy])
end

_form.html.haml (vereinfacht)

= form_for [@project, @feature] do |f|
  ...
  - if @feature.new_record? -# if we are creating new feature
    = f.fields_for :scenarios, @feature.scenarios.build do |builder|
      = builder.label :description, "Scenario"
      = builder.text_area :description, rows: "3", autocomplete: "off"

  - else -# if we are editing an existing feature
    = f.fields_for :scenarios do |builder|
      = builder.label :description, "Scenario"
      = builder.text_area :description, rows: "3", autocomplete: "off"

Ich bin sicher, es gibt einen schöneren Weg, das zu erreichenif @feature.new_record? prüfen. Ich benutze auch ein paar Javascript-Hooks, um dynamisch verschachtelte Attributformen (die ich weggelassen habe) zu erstellen, die stark beeinflusst sind vonRailscast # 196 Nested Model Form (überarbeitet)

Ich würde ein wirklich schönes liebenSchienen-y Implementierung des Umgangs mit diesen verschachtelten Formen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage