Tengo dos tablas, con una relación HABTM en Rails. Algo así como lo siguiente:¿Cuál es la forma más rápida de crear asociaciones masivas de HABTM en Rails?
class Foo < ActiveRecord::Base
has_and_belongs_to_many :bars
end
class Bar < ActiveRecord::Base
has_and_belongs_to_many :foos
end
ahora tengo una nueva Foo
objeto, y quieren masa asignar miles de bares a ella, que he pre-cargado:
@foo = Foo.create
@bars = Bar.find_all_by_some_attribute(:a)
¿Qué tan rápido forma de hacer esto? He intentado:
@foo.bars = @bars
@foo.bars << @bars
Y tanto correr muy lento, con una entrada como la siguiente para cada bar
:
bars_foos columnas (1.1ms) MOSTRAR campos de
bars_foos
SQL (0,6 ms) INSERT INTObars_foos
(bar_id
,foo_id
) VALORES (100, 117200)
que miraba ar-extensions, pero la función import
no parece funcionar sin un modelo (Model.import) que impida su uso para una tabla de unión.
¿Necesito escribir el SQL o los Rails tienen una forma más bonita?
realmente? ¿Ninguno? Ustedes salten sobre los lay-ups y las preguntas de "mejores prácticas" :) – klochner