加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:23:40 所属栏目:百科 来源:网络整理
导读:请耐心等待. 在我正在开发的应用程序中,用户可以将CSV文件上传到系统中,包括他们喜欢的任何标题以及数据中的任何列.然后使用CSV在数据库中生成一个表并将数据写入其中,然后可以通过系统访问它以进行各种用途,搜索,排序更新等. 旧的(现在已经不复存在的系统)
请耐心等待.

在我正在开发的应用程序中,用户可以将CSV文件上传到系统中,包括他们喜欢的任何标题以及数据中的任何列.然后使用CSV在数据库中生成一个表并将数据写入其中,然后可以通过系统访问它以进行各种用途,搜索,排序更新等.

旧的(现在已经不复存在的系统)是在PHP中并处理得很好,虽然很多原始sql创建表和框架支持魔术模型(如果表存在,所以没有在类中定义的对象)模型文件)

新版本是用RoR3编写的,我还没想办法做到这一点.我已经设法通过在模型中调用迁移工具来解决表创建问题(不是很多Rails-y我知道,但需要…),但是一旦创建到新表,我找不到链接到新表的方法写入数据,建立关系或其他任何东西.

我希望的是,

a)这里的某个人有更好的方法来做到这一点,而不是动态创建表格和模型(这里的警告,这些文件可以包含100’000的记录和不同的字段,因此单个表格选项不能很好地工作)即针对此问题的更好的数据库设计.

要么

b)可以告诉我如何理清模型问题.

我已经看过Nic博士的魔法模型宝石用于RoR但它似乎在RoR3中不起作用,除非我做错了什么

对不起,文本墙,期待任何建议

提前致谢

解决方法

好吧,我认为我得到了一个解决方案,但如果很好,那就不一样了.

基本上,您通过执行SQL通过Rail ActiveRecord来动态创建表.
接下来使用Model并更改其名称(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

好吧,你的一个问题是模型逻辑和关联.你有点受限,但也许你可以解决这个问题.

我猜不是最好的做法,但如果你需要这个.我认为它可能会奏效!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读