2016-05-15 11 views
1

Ich bin eine Anwendung zum Verwalten von Schulden und versuche, drei Objekte mit dem gleichen Formular zu erstellen.Erstellen von Rails-Objekten mit demselben Formular

Die Modelle sind;

  1. Schulden (der geschuldete Betrag)

    class Debt < ActiveRecord::Base 
        belongs_to :user 
        belongs_to :creditor 
        belongs_to :debtor 
        accepts_nested_attributes_for :debtor, :creditor 
    end 
    
  2. Schuldnerin (Die Person, die verdankt)

    class Debtor < ActiveRecord::Base 
        belongs_to :user 
        has_many :debts 
    end 
    
  3. Creditor (Die Person, die geschuldet ist)

    class Creditor < ActiveRecord::Base 
        belongs_to :user 
        has_many :debts 
    end 
    

Ich benutze das neue Schuldenformular und möchte Felder für Debitor und Gläubiger anzeigen. Wenn also eine neue Schuld entsteht, ist dies auch der verbundene Schuldner und Gläubiger.

Ich habe die Dokumentation jedoch angesehen, kann nicht die Felder für Schuldner oder Gläubiger auf dem Formular angezeigt werden.

Dies ist die Form

<%= simple_form_for(@debt) do |f| %> 
<%= f.error_notification %> 

<!-- Debt fields --> 
<div class="form-inputs"> 
    <%= f.association :user %> 
    <%= f.input :amount %> 
    <%= f.input :commission %> 
    <%= f.input :invoice_issued %> 
    <%= f.input :invoice_date %> 
    <%= f.input :status %> 
    <%= f.input :details %> 
</div> 

<!-- Debtor Fields --> 
<ul> 
    <%= f.fields_for :debtor do |debtor_form| %> 
    <li> 
    <%= debtor_form.association :user %> 
    <%= debtor_form.input :business_name %> 
    <%= debtor_form.input :abn %> 
    <%= debtor_form.input :first_name %> 
    <%= debtor_form.input :last_name %> 
    <%= debtor_form.input :email %> 
    <%= debtor_form.input :mobile_number %> 
    <%= debtor_form.input :phone_number %> 
    </li> 
<% end %> 
</ul> 

<div class="form-actions"> 
    <%= f.button :submit %> 
</div> 
<% end %> 

Jede Hilfe sehr geschätzt wird.

EDIT

create_table "debts", force: :cascade do |t| 
t.integer "user_id" 
t.float "amount" 
t.float "commission" 
t.boolean "invoice_issued" 
t.date  "invoice_date" 
t.string "status" 
t.text  "details" 
t.datetime "created_at",  null: false 
t.datetime "updated_at",  null: false 

Ende

Antwort

1

Sie müssen Ihre Schulden des Schuldners oder Gläubiger in Ihrem Controller bauen:

#controller 
def new 
    @debt = Debt.new 
    @debt.build_debtor 
    @bebt.build_creditor 
end 
+0

Hallo Lei Liu. Nach dem Hinzufügen von @ debt.build_debtor im Schulden-Controller, bekomme ich den folgenden Fehler 'kann nicht das unbekannte Attribut' dottor_id' 'schreiben. Irgendwelche Ideen? –

+0

Haben Sie eine Schuldner-Spalte in Ihrem Schuldenmodell? Bitte posten Sie das Schema Ihrer Schulden Tabelle. –

+0

Bearbeitet, um das Schuldenschema –

Verwandte Themen