为此,您可以添加一个新表,例如具有列 id 和 food_type 的“lookup_food_types”。我假设您将卡路里保存在名为“卡路里”的表格中。现在在卡路里表中,您需要进行一些修改。它的列将是“id、user_id、lookup_food_type_id”。
所以在你的 LookupFoodType 模型中,
attr_accessible :food_ype
has_many :calories
在你的卡路里模型中,
attr_accessible :user_id, :lookup_food_type_id
belongs_to :lookup_food_type
在 lookup_food_types 表中,您最初需要添加一些记录,就像
id food_type
-----------------
1 breakfast
2 lunch
3 dinner
4 snack
现在这是每个用户的基本食物类型。如果用户想在基本 food_types 旁边添加新的食物类型,那么您可以在卡路里表中添加一个名为“custom_food_type”的新列
在用户要添加卡路里的表单中,您需要将卡路里显示为输入,并将 food_type 显示为选择框。如果用户想添加自己的食物类型,还有一个按钮。单击该按钮后,“custom_food_type”的文本字段将可见。但条件是,该用户不应从基本列表中选择任何类型的食物类型。您可以通过使用 jquery 来实现它。
希望它能解决你的问题。