Вставьте большое подмножество одной таблицы в другую
Переписать приложение Rails 2 на Rails 3.
Могу ли я сделать заявление SQL
INSERT INTO visits (col1, col2) SELECT col_a, col_b FROM clicks WHERE import_id = 1
с арелом и рубином (без петли). Моя первая мысль была, что я мог сделать
Visit.create(Import.clicks)
или же
Visit.create(Click.select("col1, col2").where("import_id = 1"))
или же
Visit.insert(Click.select("col1, col2").where("import_id = 1"))
к сожалению, это не сработало. Кто-нибудь знает больше?
1 ответ
Решение
Вы должны посмотреть на ar-extensions. Это должно позволить вам сделать это:
Visit.insert_select(
:into => [:col1, :col2],
:select => [:col_a, :col_b],
:from => :clicks,
:conditions => ['import_id = ?', 1],
)
Проверьте документацию для деталей.