2011-03-15 5 views
0

Je suis coincé -Aide avec rails belongs_to

Je construis une application comptable dans des rails, et un modèle où un client aura plusieurs factures ainsi que des paiements multiples (liés à ces factures)

Voici un rapide coup d'oeil à un modèle simplifié:

class Customer < ActiveRecord::Base 
    has_many :customer_payments 
    has_many :invoices 
    accepts_nested_attributes_for :customer_payments, :allow_destroy => true 
end 

class CustomerPayment < ActiveRecord::Base 
    has_many :customer_payment_items 
    belongs_to :customer 
    belongs_to :invoice 
    accepts_nested_attributes_for :customer_payment_items 
end 

class CustomerPaymentItem < ActiveRecord::Base 
    belongs_to :invoice, :inverse_of => :customer_payment_items 
    belongs_to :customer_payment 
end 

class Invoice < ActiveRecord::Base 
    has_many :invoice_lines, :dependent => :destroy 
    has_many :customer_payment_items, :inverse_of => :invoice 
    belongs_to :customer 
    accepts_nested_attributes_for :invoice_lines, :allow_destroy => true 
end 

J'ai une forme imbriquée où je veux montrer les attributs des clients, les attributs et les attributs CustomerPayment CustomerPaymentItem - qui tout fonctionne bien. Je souhaite également afficher les attributs Facture pour chaque CustomerPaymentItem (chaque CustomerPaymentItem renvoie à une seule facture) et même si je peux obtenir un formulaire pour afficher les informations CustomerPaymentItem, je ne peux pas l'afficher pour afficher les informations de facturation requises pour donner la référence à l'utilisateur. - Je rencontre des problèmes pour afficher les données d'une association belongs_to sur le formulaire.

Je ne sais pas - Ne devrais-je pas pouvoir traverser l'association belongs_to? FYI - Je peux envoyer des données au journal où je sais que les données de facture sont remplies pendant l'appel CustomerPayment.new, il semble juste se perdre entre le contrôleur et le formulaire.

Comment accéder à ces données? Voici l'info du formulaire - (provenant de quelques formes rendues) le truc qui n'apparaît pas est entre ---. Ai-je oublié quelque chose dans mes champs pour afficher les données de référence de la facture? Mon modèle est-il trop complexe pour que les rails aient du sens?

+0

est-ce 3 rails? vous devez avoir un = dans votre f.fields car je pense que pour montrer – corroded

+0

merci - fera –

Répondre

0

@corroded avait raison - la question était mon manque d'un signe = dans

<% f.fields_for :invoice do |builder| %> 

Je suppose que tout le monde a besoin d'apprendre cette leçon