Ho due tabelle, con una relazione HABTM in Rails. Qualcosa di simile a quanto segue:Qual è il modo più veloce per creare associazioni di massa HABTM in Rails?
class Foo < ActiveRecord::Base
has_and_belongs_to_many :bars
end
class Bar < ActiveRecord::Base
has_and_belongs_to_many :foos
end
Ora ho una nuova Foo
oggetto, e vogliono mass-assegnare migliaia di bar ad esso, che ho pre-caricati:
@foo = Foo.create
@bars = Bar.find_all_by_some_attribute(:a)
Qual è il più veloce modo di fare questo? Ho provato:
@foo.bars = @bars
@foo.bars << @bars
Ed entrambi corro molto lento, con una voce simile al seguente per ogni bar
:
bars_foos colonne (1.1ms) Mostra CAMPI DA
bars_foos
SQL (0.6ms) INSERT INTObars_foos
(bar_id
,foo_id
) VALUES (100, 117200)
ho guardato ar-extensions, ma la funzione import
non sembra funzionare senza un modello (Model.import) che preclude il suo utilizzo per una tabella di join.
Ho bisogno di scrivere l'SQL o Rails ha un modo più carino?
davvero? nessuno? Voi ragazzi saltate su tutti i lay-up e le domande sulle "migliori pratiche" :) – klochner