2016-06-12 13 views
0

Ich versuche, mehrere verschachtelte Attribute innerhalb eines Formulars zu verwenden, obwohl nur der erste Satz von Attributen erscheint.mehrere verschachtelte Formulare innerhalb eines Ruby on Rails-Projekts

Unten ist die HAML Vorlage

.mdl-cell.mdl-cell--10-col.mdl-cell--1-offset 
    %h3.mdl-typography--display-1= t('.account_title') 
    = form.fields_for :address do |address_fields| 
    .mdl-grid 
     .mdl-textfield.mdl-js-textfield.mdl-textfield--floating-label.mdl-cell.mdl-cell--6-col 
     = address_fields.text_field :first_name, class: 'mdl-textfield__input' 
     = address_fields.label :first_name, class: 'mdl-textfield__label' 
     .mdl-textfield.mdl-js-textfield.mdl-textfield--floating-label.mdl-cell.mdl-cell--6-col 
     = address_fields.text_field :last_name, class: 'mdl-textfield__input' 
     = address_fields.label :last_name, class: 'mdl-textfield__label' 
     .mdl-textfield.mdl-js-textfield.mdl-textfield--floating-label.mdl-cell.mdl-cell--6-col 
     = form.text_field :name, class: 'mdl-textfield__input' 
     = form.label :name, class: 'mdl-textfield__label' 
     .mdl-textfield.mdl-js-textfield.mdl-textfield--floating-label.mdl-cell.mdl-cell--6-col 
     = form.email_field :email, class: 'mdl-textfield__input' 
     = form.label :email, class: 'mdl-textfield__label' 
    %h3.mdl-typography--display-1= t('.bank_title') 
    = form.fields_for :account do |account_fields| 
    .mdl-grid 
     .mdl-textfield.mdl-js-textfield.mdl-textfield--floating-label.mdl-cell.mdl-cell--6-col 
     = account_fields.text_field :bsb, class: 'mdl-textfield__input' 
     = account_fields.label :bsb, class: 'mdl-textfield__label' 
     .mdl-textfield.mdl-js-textfield.mdl-textfield--floating-label.mdl-cell.mdl-cell--6-col 
     = account_fields.text_field :account_number, class: 'mdl-textfield__input' 
     = account_fields.label :account_number, class: 'mdl-textfield__label' 
     .mdl-textfield.mdl-js-textfield.mdl-textfield--floating-label.mdl-cell.mdl-cell--12-col 
     = account_fields.text_field :account_name, class: 'mdl-textfield__input' 
     = account_fields.label :account_name, class: 'mdl-textfield__label' 

Definitionen in Modell

accepts_nested_attributes_for :address, reject_if: proc { |attributes| attributes['address1'].blank? } 
    accepts_nested_attributes_for :trading_hours 
    accepts_nested_attributes_for :phones, :reject_if => lambda { |t| (t['display_number'].gsub(/\D+/, '').blank?) } 
    accepts_nested_attributes_for :account 
+0

Können Sie zeigen, dass die Params aus Ihrem Rails Server Log übergeben werden? – Kumar

Antwort

-1

auf der übergeordneten Sie jedes zusätzliche Attribute für das Formular erstellen müssen (dies eine neue Form, die, i glauben Sie können dies in der Steuerung unter def new tun ...)

Wenn Sie nicht versuchen g, um ein neues Formular zu machen, lassen Sie es mich wissen und aktualisieren Sie die Frage

+0

Dies scheint zu finden, aber geht gegen den Weg Rails nach der Dokumentation, die Rubymine mir sagt –

+0

lol okay, wenn Sie es sagen! Attribute werden nicht angezeigt, wenn keine Attribute für das Objekt erstellt wurden. – Dave

+0

Dieser Code sollte nicht im Controller sein, da nur 1 Methode aufgerufen werden sollte. Dies ist keine Best Practices, es geht gegen die FAT-Modelle, Skinny Controller –

Verwandte Themen