问题描述
我们发现自己需要使用 ActiveRecord 工具来查询表,但我们不想为这些表创建长期存在或“全局”的类。例如,我们真的需要做这样的事情
from_table(table_name).find_in_batches do |row|
...
到目前为止,我想到的是:
def temporary_model_class_for_table(table_name)
Class.new(ActiveRecord::Base) do
self.table_name = table_name
end
end
允许我们执行以下操作:
temporary_model_class_for_table('widgets').where(id: 1)
返回 temporary_model_class_for_table
返回的匿名类的实例。但我想知道是否有更干净的方法来做到这一点。也许使用类似 Github 的 sql gem 或直接访问结果集?另一方面,find_in_batches
/ find_each
之类的东西是 ActiveRecord 部分,而不是 Arel 部分,因此可能需要存在完整(庞大)的 ActiveRecord API。
有没有更简洁的方法来做到这一点?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)