ruby-on-rails - 动态创建新的 Active Record 模型和数据库表

标签 ruby-on-rails ruby database

我不确定我应该给这个问题起什么名字。我刚开始服务器端编程,需要一些帮助。

到目前为止,我阅读的所有关于 RoR 的教程都涉及创建预定义 表和预定义 字段(id、姓名、电子邮件等) ).他们使用 ActiveRecord 作为基类,保存到数据库由父类(super class)自动处理。

我正在尝试编程的是允许带有字段的用户定义表。于是想到了这个办法。 Web UI 将有一个空表,用户将命名该表,并添加列(字段),然后添加行,然后保存。我将如何实现?我不要求详细信息,只是对它的概述。正如我所说,到目前为止,我阅读的所有教程都涉及预定义表,其中包含预定义 ActiveRecord 子类的字段。

简而言之,我想问的是,如何在 运行时 中的数据库中创建表,并向表中添加字段。

希望我说清楚了,如果不清楚,请告诉我,我会尝试详细说明。 谢谢。

最佳答案

除非您正在构建一个数据库管理工具(甚至可能在那时),否则允许用户以您建议的方式直接访问数据库层可能是一个坏主意。除了稳定性和安全性问题,如果您的用户创建大量表,它会变得非常慢。

例如,如果您想在 100 个用户的表中搜索某个值,则必须运行 100 个单独的查询。创建的用户表越多,站点的速度就会呈指数级下降。

一个更明智的方法可能是有一个像这样的表模型

class Table < ActiveRecord::Base
  has_many :fields
  has_many :rows
end

每个表都会有附加的字段,以及存储相应数据的行(这些数据会以某种方式编码)。

但是,正如@Aditya 正确指出的那样,这并不是真正的初学者内容!

关于ruby-on-rails - 动态创建新的 Active Record 模型和数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8102702/

相关文章:

ruby-on-rails - 使用 eval 运行 ruby​​ 代码,它是 gems,rails

ruby-on-rails - Heroku上的代码崩溃在本地完美运行

ruby-on-rails - Rails - 检查记录是否已更新

MySQL CLAUSE可以变成一个值吗?

javascript - rails : updating partial dosen't execute inline javascript from the partial

jquery - Rails+PaperClip+jQuery-File-Upload 与嵌套模型

ruby-on-rails - Factory Girl after_build 回调并覆盖 rspec 中的问题

ruby-on-rails - 如何以一种形式编辑多个模型?

sql - Postgres array_agg 一行中新字符串的每个值

mysql - 用于定期存储用户记录的数据库模式