Ruby on rails 如何在不依赖迁移的情况下在rails应用程序中正确添加新列?

Ruby on rails 如何在不依赖迁移的情况下在rails应用程序中正确添加新列?,ruby-on-rails,ruby,database,activerecord,rails-activerecord,Ruby On Rails,Ruby,Database,Activerecord,Rails Activerecord,假设用户Bob希望每天记录他的膳食热量,包括早餐、午餐、晚餐和零食。因此,我在rails中制作了一张包含四列(早餐、午餐、晚餐、零食)的桌子,Bob每天每餐摄入的卡路里没有任何问题。几天后,Bob决定加入brunch,因此我的第一个想法是在brunch专栏中添加一个新的迁移,如果这是一个规模非常小的应用程序,并且这种更改很少发生,那么这很好,但是如果该应用程序将被多人使用,我该怎么办,每个人都想加上自己的食物时间名称 当然,迁移不是一种方式,因为这需要开发人员每次介入并修改rails应用程序,这

假设用户Bob希望每天记录他的膳食热量,包括早餐、午餐、晚餐和零食。因此,我在rails中制作了一张包含四列(早餐、午餐、晚餐、零食)的桌子,Bob每天每餐摄入的卡路里没有任何问题。几天后,Bob决定加入brunch,因此我的第一个想法是在brunch专栏中添加一个新的迁移,如果这是一个规模非常小的应用程序,并且这种更改很少发生,那么这很好,但是如果该应用程序将被多人使用,我该怎么办,每个人都想加上自己的食物时间名称


当然,迁移不是一种方式,因为这需要开发人员每次介入并修改rails应用程序,这可能是每天多次的。那么,在rails应用程序中是否有这样做的方法,这是activerecord的限制,还是不应该这样做?

为此,您可以添加一个新表,例如具有列id和食物类型的“lookup\u food\u types”。我假设你把卡路里放在一张名为“卡路里”的表格里。现在在卡路里表中,您需要进行一些修改。其列将为“id、用户id、查找食物类型id”

所以在LookupFoodType模型中

attr_accessible :food_ype
has_many :calories
在你的Calory模型中

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
现在,这是每个用户的基本食物类型。如果用户希望在基本食物类型旁边添加新的食物类型,则可以在卡路里表中添加一个名为“自定义食物类型”的新列

在用户要添加calory的表单中,需要将calory显示为输入,将food_类型显示为选择框。和一个按钮,如果用户想添加自己的食物类型。单击该按钮后,“自定义食物类型”的文本字段将可见。但条件是,用户不应从基本列表中选择任何类型的食品。您可以通过使用jquery来实现它


希望它能解决您的问题。

为此,您可以添加一个新表,例如具有列id和食物类型的“lookup\u food\u types”。我假设你把卡路里放在一张名为“卡路里”的表格里。现在在卡路里表中,您需要进行一些修改。其列将为“id、用户id、查找食物类型id”

所以在LookupFoodType模型中

attr_accessible :food_ype
has_many :calories
在你的Calory模型中

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
现在,这是每个用户的基本食物类型。如果用户希望在基本食物类型旁边添加新的食物类型,则可以在卡路里表中添加一个名为“自定义食物类型”的新列

在用户要添加calory的表单中,需要将calory显示为输入,将food_类型显示为选择框。和一个按钮,如果用户想添加自己的食物类型。单击该按钮后,“自定义食物类型”的文本字段将可见。但条件是,用户不应从基本列表中选择任何类型的食品。您可以通过使用jquery来实现它


希望它能解决你的问题。

为FoodTime或其他东西建立一个模型,让人们定义自己的,有时间的?为FoodTime或其他东西建立一个模型,让人们定义自己的,有时间的?谈论“膳食类型”和“膳食”可能比谈论“膳食类型”更有意义。谈论“膳食类型”和“膳食”可能更有意义“膳食”而不是“食物类型”。