За предыдущую публикацию я понимаю, как настроить мои таблицы / модели, чтобы я мог установить отношение «многие ко многим»
Однако я пытаюсь реализовать все это на 1 странице с помощью одной формы. (Единственная другая страница, которую увидят пользователи, это страница подтверждения после отправки формы, возможно, просто отображающая детали того, что они отправили)
Пользователь должен иметь возможность только обновлять количество любых доступных блюд. Затем я сделаю резервную копию базы данных в определенный день / время, и это будет заказ каждого пользователя на неделю. Из-за этого я перестроил свои таблицы следующим образом ...
Пользователь хранит информацию о пользователе.
user.rb
class User < ApplicationRecord
has_many :mealselections
has_many :meals, through: :mealselections
accepts_nested_attributes_for :mealselections
end
Питание используется для отображения информации о еде для всех пользователей. (имя-еды, описание, img_url)
meal.rb
class Meal < ApplicationRecord
has_many :mealselections
has_many :users, through: :mealselections
end
MealSelection - это объединенная таблица, которая ссылается на выбранные пользователем блюда, а затем в эту таблицу добавляется дополнительный целочисленный столбец, который обозначает количество блюд, которое они хотят для каждого выбора блюд
mealselection.rb
class MealSelection < ApplicationRecord
belongs_to :user
belongs_to :meals
end
Итак, где я потерян, так это как использовать контроллер, чтобы иметь возможность выполнять функции CRUD из одной формы. Это имело больше смысла, когда у меня было отношение 1 к 1, поскольку я просто обновлял столбцы (food1, food2, food3) для соответствующего пользователя, и каждый столбец food # был создан со значением по умолчанию 0.
Однако теперь из-за того, как работают отношения «многие ко многим», я понимаю, что пользователь должен как минимум создавать и обновлять столбцы из одной и той же формы.
Поскольку я показываю это на одной странице (домашней странице), как мне сделать это в соответствующем HomeController с помощью одной формы / запроса?