目前,我的应用有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 :(得分: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
,它是按字母顺序排列的。