Ruby on rails 将一个表的大子集插入到另一个表中
将Rails 2应用程序重写为Rails 3 我可以执行sql语句吗Ruby on rails 将一个表的大子集插入到另一个表中,ruby-on-rails,ruby-on-rails-3,arel,Ruby On Rails,Ruby On Rails 3,Arel,将Rails 2应用程序重写为Rails 3 我可以执行sql语句吗 INSERT INTO visits (col1, col2) SELECT col_a, col_b FROM clicks WHERE import_id = 1 使用arel和ruby(无循环)。我的第一个想法是,我能做到 Visit.create(Import.clicks) 或 或 遗憾的是,这没有起作用。有人知道更多吗?你应该看看。它应该允许您这样做: Visit.insert_select( :into
INSERT INTO visits (col1, col2) SELECT col_a, col_b FROM clicks WHERE import_id = 1
使用arel和ruby(无循环)。我的第一个想法是,我能做到
Visit.create(Import.clicks)
或
或
遗憾的是,这没有起作用。有人知道更多吗?你应该看看。它应该允许您这样做:
Visit.insert_select(
:into => [:col1, :col2],
:select => [:col_a, :col_b],
:from => :clicks,
:conditions => ['import_id = ?', 1],
)
查看详细信息。直接执行您编写的SQL有什么问题?只要有可能,您应该使用相同的编程语言。例如,缓存框架不知道应该更新import.visions等。感谢您的解释。:)好的,它将在rails 2中完成工作,activerecord导入以某种方式在rails 3中完成工作
Visit.insert(Click.select("col1, col2").where("import_id = 1"))
Visit.insert_select(
:into => [:col1, :col2],
:select => [:col_a, :col_b],
:from => :clicks,
:conditions => ['import_id = ?', 1],
)