2013-06-26 128 views
0

目前,我的應用程序有3個模型,
我想通過指定所需的食物數量來添加新的收據。在多對多關係中創建/編輯中間模型類

class Receipt < ActiveRecord::Base 
    # columns: id, place 
    has_many :receipt_foods 
    has_many :foods, through: :receipt_food 
end 

class ReceiptFood < ActiveRecord::Base 
    # columns: id, quantity, receipt_id, food_id 
    belongs_to :receipt 
    belongs_to :food 
end 

class Food < ActiveRecord::Base 
    # columns: id, name 
    has_many :receipt_foods 
    has_many :receipts, through: :receipt_food 
end 

我的問題是如何建立的糧食數量在我的形式,
例如:創建3種不同的食物,其中3數量的每種食品

我知道如何在rails console只有建立這個,不要不知道如何在網絡上使用form_for
我試過fields_for但大多數例子只解釋了創建和編輯2個模型屬性。
任何人可以建議方式或任何材料/文章談論這個?
感謝

回答

0

我不知道,但我會做到:

= form_for :receipt_food do |f| 
    = f.number_field :quantity, min: 0 
    = f.select :food_id, Food.all.map{ |food| [food.name, food.id] } 
    = f.select :receipt_id, Receipt.all.map{ |receipt| [receipt.place, receipt.id] } 

我將標籤添加到這些領域。

此外,我認爲公約是命名它:FoodReceipt,它是按字母順序的。

+0

我想從receipt_food添加newe食物和收據嗎? – kyktommy

相關問題