【问题标题】:Can we use multiple tables(created on fly) for a single model in rails?我们可以为 Rails 中的单个模型使用多个表(动态创建)吗?
【发布时间】:2016-07-20 05:39:29
【问题描述】:

我有一个模型 TempUser 用于使用大量查询来缩小结果范围进行数据处理。它是用户模型的复制品。为了缩小结果范围,它将 users_table 中的所有记录复制到 temp_users_table 并根据应用在其上的过滤器继续删除记录,这样最后我只过滤了 TempUser 模型中的用户,我可以在其中执行更多活动记录操作残差数据。

我正在尝试为 TempUser 模型制作动态表,以便如果多个用户请求 TempUser 模型,那么他应该有不同的 temp_user_dynamic_table 来对其执行操作。有可能吗?

类似:-

class TempUser < ActiveRecord::Base
end

当有新请求进来时,它会动态创建多个动态表,例如:-temp_users_table1,temp_users_table2

【问题讨论】:

  • 这听起来像是xy problem
  • 感谢@spickermann 的回复,但我的问题是直截了当,我们可以在 Rails 中为单个模型使用多个表(动态创建)吗?我给出了我的问题的一点历史,只是因为它是否可以帮助 stackoverflowers 更清楚地了解我的问题。
  • 为什么不直接在表中添加current_user_id 之类的列来标识子集属于哪个用户?

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4


【解决方案1】:

我认为做类似的事情没有问题

temp_model = Class.new(TempUser) do
  set_table_name your_dynamically_created_table_name
end

temp_model.find(...blah...)

但我同意@spickermann,这绝对看起来像 XY 问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 2020-05-10
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多