ruby-on-rails - 在运行时生成新模型和模式

标签 ruby-on-rails ruby database

假设您的应用允许用户在数据库中创建他们自己的表来保存他们自己的自定义数据。每个表都有自己的模式。有哪些好的方法?

我的第一次尝试涉及动态创建迁移文件和模型文件,但我想在无法写入文件系统的 heroku 上运行它。

我认为 eval 可能是创建和运行迁移类和模型类的方法。但是我想确保在生成应用程序的新进程时模型类存在。可以通过在每个用户创建新表时将这些类定义存储起来然后在启动时运行它们来实现这一点。但现在它已经足够困惑了,我可能会遗漏一些明显的东西。

最佳答案

最好不要在运行时生成新类。除了所有的安全风险之外,如果您获得大量用户,每个线程的启动时间将是令人讨厌的。

我建议重新考虑您的应用设计,并以通用表格为目标来保存用户的自定义数据。如果您有用户可以创建的数据结构示例,我们可能会提供帮助。

关于ruby-on-rails - 在运行时生成新模型和模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1778992/

相关文章:

ruby - 寻找 "real"使用延续的例子

ruby-on-rails - Mongoid + ActiveModel 验证 + I18n,没有正确翻译属性

database - Django 读取模板中的模型数据

mysql - 按 DeviceId 查询最后条目组

ruby-on-rails - 使用 neo4j-database 进行 Rails rspec 测试会给出 ActiveRecord::AdapterNotSpecified-error

ruby-on-rails - 安装nio4r(1.2.1)时出错,Bundler无法继续

ruby-on-rails - Rails 中只有一个模型实例

ruby-on-rails - 什么是好的代码测试比率?

database - 如何同步两个 Odoo (postgresql) 数据库

javascript - 返回按钮不会重新触发主干应用程序