【发布时间】:2018-03-01 18:00:17
【问题描述】:
所以我有两个模型。一是膳食,二是称为食物。一顿饭可以有多个食物,一个食物可以是多餐。基本上是多对多的关联。我通过关联通过 has_many 做到了这一点。关联模型称为 MealFood。 我想制作一个表格,以便在创建餐点时可以通过复选框或选择选项字段选择任意数量的食物。 我怎样才能做到这一点?我对 Rails 很陌生,所以我什至不知道从哪里开始。任何帮助都会很棒!提前致谢!
到目前为止,这是我的代码:
class Meal < ApplicationRecord
belongs_to :user
has_many :meal_foods
has_many :foods, through: :meal_foods
end
class Food < ApplicationRecord
has_many :meal_foods
has_many :meals, through: :meal_foods
end
class MealFood < ApplicationRecord
belongs_to :meal
belongs_to :food
end
膳食控制员
def index
end
def new
@meal = Meal.new
@meal.foods.new
end
def create
@meal = Meal.new(meal_params)
if @meal.save
redirect_to @meal
else
render 'new'
end
end
private
def meal_params
params.require(:meal).permit(:meal_type, :date, :total_calories, :total_carbohydrates, :total_fat, foods_attributes: [:name, :calories, :proteins, :carbohydrates, :fat])
end
【问题讨论】:
-
我忘了提到,在创建餐点时,我希望能够为餐点分配一个名为“meal_type”的属性,然后继续添加食物。
-
您的要求远远超出了堆栈溢出的限制。如果您查看我上面链接的要点,这是一个非常完整的示例,说明了如何创建父/子(ren)表单。您需要仔细检查并确定该工作代码如何应用于您的特定示例。
标签: ruby-on-rails nested-forms has-many-through polymorphic-associations model-associations