2012-04-10 7 views
2

Ich verfolgt Ryan Bates' Tutorial auf verschachtelte Formen Railscast 196Erstellen von Formularen für mehr verschachtelten Ressourcen in Rails 3

Das Formular für die neue Aktion, die verschachtelten Attribute für Tests zeigen, zeigt aber nicht verschachtelte Attribute für den Schlüssel. Ich nehme an, das liegt daran, dass Tests eine has_many-Beziehung haben, in der der Schlüssel eine has_one-Beziehung hat ... Aber ich kann nicht herausfinden, was ich falsch mache.

Jede Hilfe wird sehr geschätzt!

Das ist mein Modell:

class Repository < ActiveRecord::Base 
    has_many :quizzes, :dependent => :destroy 
    has_one :key, :dependent => :destroy 

    accepts_nested_attributes_for :key, :quizzes 
end 

Das ist mein Controller ist: sollte

<div class="field"> 
    <%= f.label :wp_uid %><br /> 
    <%= f.text_field :wp_uid %> 
<% f.fields_for :quizzes do |quiz_fields| %> 
    <p> 
    <%= quiz_fields.label :name, "Name" %><br /> 
    <%= quiz_fields.text_field :name %> 
    </p> 
<% end %> 
<% f.fields_for :key do |key_fields| %> 
    <div class="field"> 
    <%= key_fields.label :value, "Value" %><br /> 
    <%= key_fields.text_field :value %> 
    </div> 
    <div class="field"> 
    <%= key_fields.label :expiry, "Expiry" %><br /> 
    <%= key_fields.date_select :expiry %> 
    </div> 
<% end %> 
</div> 
<div class="actions"> 
    <%= f.submit %> 
</div> 
<% end %> 

Antwort

1

Sie versuchen, Ihre fields_for Blöcke zu modifizieren < zu verwenden:

def new 
    @repository = Repository.new 
    3.times { @repository.quizzes.build } 
    @repository.key = Key.new 

    respond_to do |format| 
    format.html # new.html.erb 
    format.xml { render :xml => @repository } 
    end 
end 

Dies ist meiner Ansicht % =%>

Versuchen Sie, zu:

<%= f.fields_for :key do |key_fields| %> 

Die Railscast vor der Änderung 3 in Rails gemacht haben könnte <% =%> statt < %%> zu verwenden.

Ryan hat ein nested_form-Juwel, das Sie ebenfalls nützlich finden können. Ich habe es noch nicht ausprobiert, aber plane das nächste Mal ein neues Projekt.

https://github.com/ryanb/nested_form

+0

Arbeitete! Vielen Dank! – tylermauthe

0

Versuchen Sie, die Schlüssel-Objekt als

@ reposity.build_key Aufbau

von den Schienen docmentation http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#label-Unsaved+objects+and+associations

Wenn Sie ein Objekt in eine has_one Verein zuweisen möchten, ohne zu speichern Verwenden Sie die build_association-Methode. Das zu ersetzende Objekt wird weiterhin gespeichert, um seinen Fremdschlüssel zu aktualisieren.

+0

Ich habe das auch gemacht, aber es hat mein Problem nicht behoben. Trotzdem danke :) – tylermauthe

Verwandte Themen