2011-03-15 90 views
0

我卡 -幫助軌belongs_to的

我建立在軌會計應用程序,並有一個模型,其中一個客戶將有多個發票以及多種支付(有關這些發票)

下面就讓我們來看看一個簡單的模型:

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 

我有一個嵌套形式,我想展示客戶的屬性,CustomerPayment屬性和屬性CustomerPaymentItem - 這一切工作正常。

我也想顯示每個CustomerPaymentItem的發票屬性(每個CustomerPaymentItem都涉及到一張發票​​),雖然我可以得到一個表單來顯示CustomerPaymentItem信息,但我無法獲得它顯示需要的發票信息爲用戶提供參考。 - 我無法從belongs_to關聯中獲取數據以顯示在表單上。

我茫然 - 我不應該能夠穿越belongs_to的關聯?僅供參考 - 我可以將數據發送到日誌,我知道在CustomerPayment.new調用期間發票數據已填充,似乎只是在控制器和表單之間丟失。

我應該如何訪問這些數據?這裏是表單信息 - (來自幾個呈現的表單)未顯示的內容位於---之間。

<p> 
    <%= f.label :amount %><br /> 
    <%= f.text_field :amount %> 
</p> 
<p> 
    <%= f.label :invoice_id %><br /> 
    <%= f.text_field :invoice_id %> 
</p> 

<p> 
    <% f.fields_for :invoice do |builder| %> 
    --- doesn't show 
    Invoice Detail 
    <p> 
     <%= builder.label :number %><br /> 
     <%= builder.text_field :number %> 
    </p> 
    <p> 
     <%= builder.label :sub_total %><br /> 
     <%= builder.text_field :sub_total %> 
    </p> 
    --- doesn't show 

    <% end %> 
</p> 

我是否在我的字段中缺少某些內容顯示發票引用數據?我的模型對於軌道來說太複雜了嗎?

+0

這是軌道3?你需要在你的f.fields中有一個=因爲我認爲它顯示 – corroded 2011-03-15 05:49:37

+0

謝謝 - 將做 – 2011-03-15 14:00:03

回答

0

@corroded是正確的 - 問題是我缺少的一個等號(=)在

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

我想每個人都需要學習這個教訓