我想创建新表,在我的应用中添加/删除列。这可能吗?
答案 0 :(得分:1)
是的,您可以使用ActiveRecord :: Base.connection.execute执行应用程序数据库用户可以对数据库执行的任何操作。例如:
ActiveRecord::Base.connection.execute('ALTER TABLE people ADD name VARCHAR(60);')
但是,如果向表中添加列,则在重新启动应用程序之前,ActiveRecord类中的列的相应属性将不可用。
答案 1 :(得分:0)
没有。这不可能。 Rails必须运行迁移才能将表送入数据库。这要求在迁移后停止并重新启动服务器。您不希望这种情况投入生产。
动态表单将实现我相信你所追求的目标。
简而言之,您将模型的字段设为单独的模型。例如
class Car
has_many :car_fields
end
class CarFields
belongs_to :car
end
然后,您可以创建一个表单,用户可以在将数据库添加到数据库时添加和删除字段。
Ryan Bates在http://railscasts.com/episodes/403-dynamic-forms
解释了这一点我认为您需要订阅才能观看。我没有,得到一个。 Railscasts很棒!