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が、Web での使用方法はわかりませんが、ほとんどの例では 2 つのモデル プロパティの作成と編集のみを説明しています。 これについて説明する方法や資料/記事を提案できる人はいますか? ありがとうform_for
fields_for

4

1 に答える 1

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また、命名規則は、アルファベット順だと思います。

于 2013-06-26T13:12:24.713 に答える