gpt4 book ai didi

ruby-on-rails - 在Ruby on Rails 3中动态(动态)创建表和模型

转载 作者:行者123 更新时间:2023-12-03 16:05:09 27 4
gpt4 key购买 nike

忍受我这一件事。

在我正在使用的应用程序中,用户可以将CSV文件及其所需的任何标题和数据中的任何列上传到系统中。 CSV然后用于在数据库中生成表并将数据写入表中,然后可以通过系统对其进行访问以用于各种用途,搜索,对更新进行排序等。

旧的(现在已经失效的系统)使用PHP并能很好地处理,尽管使用大量原始sql来创建表和框架支持的魔术模型非常困惑(如果表存在,那么没有在其中定义类的对象也是如此)模型文件)

新版本正在用RoR3编写,但我还没有找到一种方法来做到这一点。我设法通过在模型中调用迁移工具来整理表的创建(我知道不是很Rails,但是需要...),但是一旦创建到新表,我就找不到一种链接到新表的方法。写数据,建立关系或其他任何东西。

我希望的是

a)与动态创建表和模型相比,这里的某人有更好的方法(此处警告是,这些文件可能包含100'000条记录和不同的字段,因此单个表选项不能很好地工作),即针对此问题的更好的数据库设计。

或者

b)可以告诉我如何解决模型问题。

我已经看过Nic博士为RoR设计的Magic Model gem ,但是除非我做错了,否则它似乎无法在RoR3中使用

对不起,我希望收到您的建议

提前致谢

最佳答案

好的,我想出了一个解决方案,但是如果很好,那就另当别论了。

基本上,您是通过Rail ActiveRecord执行SQL来动态创建表的。
接下来,使用模型并更改其名称(Model.table_name)。

像这样的东西:

    // SQL Create table
sql = "CREATE TABLE my_table (id int(11) NOT NULL AUTO_INCREMENT, code varchar(3) NOT NULL)"
ActiveRecord::Base.connection.execute(sql)

然后,使用模型,您可以即时更改表名,例如:
MyModel.table_name = "my_table"
records = MyModel.all

好的,您的问题之一是模型逻辑和关联。您有一定的局限性,但也许可以解决该问题。

我猜并不是真正的最佳实践,但是如果您需要的话。我认为这可能有效!

关于ruby-on-rails - 在Ruby on Rails 3中动态(动态)创建表和模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5603624/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com