2013-06-26 96 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

相关问题