Если вы хотите хранить информацию что-то вроде:
В заказе есть еда 1, еда 2 и еда 3, и заказ принадлежит пользователю 1
Тогда у вас должны быть правильные ассоциации между этими 3 моделями. User
, Meal
и Order
Один Order
может иметь много приемов пищи, а один Meal
может принадлежать множеству заказов, поэтому Order
и Meal
будут иметь many-to-many association
.
И Order
будет belong to
a User
Решение:
Измените Order
модель на:
t.belongs_to :user
Добавьте четвертую модель, вы можете назвать ее Quantity
:
t.belongs_to :order
t.belongs_to :meal
t.integer :quantity
Теперь, скажем, пользователь A, выбирает 2 единицы еды A, 3 единицы еды B, для этого пользователя вы создадите заказ A, а заказ A будет иметь две записи в модели Quantity
, содержащие информацию о еде ID и их соответствующие количества.
Обновление:
Модели будут выглядеть так:
Order.rb
belongs_to :user
has_many :quantities
has_many :meals, through: :quantities
Quantity.rb
belongs_to :order
belongs_to :meal
Meal.rb
has_many :quantities
has_many :orders, through: :quantities
User.rb
has_many :orders
Затем, если вы хотите получить общее количество заказов, получаемых за один прием пищи, вы можете получить его по:
meal.orders.count
и если вы хотите получить все блюда одного заказа и их количество:
order.quantities.each do |record|
record.meal.name # for name of associated meal
record.quantity # for quantity of meal
end