रेल में एचएबीटीएम संबंध के साथ मेरे पास दो टेबल हैं। निम्नलिखित की तरह कुछ:रेल में बड़े पैमाने पर एचएबीटीएम संगठन बनाने का सबसे तेज़ तरीका क्या है?
class Foo < ActiveRecord::Base
has_and_belongs_to_many :bars
end
class Bar < ActiveRecord::Base
has_and_belongs_to_many :foos
end
अब मैं एक नया Foo
वस्तु है, और यह करने के लिए सलाखों के हजारों बड़े पैमाने पर आवंटित है, जो मैं पहले से लोड है करना चाहते हैं:
@foo = Foo.create
@bars = Bar.find_all_by_some_attribute(:a)
क्या सबसे तेजी से है ऐसा करने का तरीका? मैं कोशिश की है:
@foo.bars = @bars
@foo.bars << @bars
और दोनों वास्तव में धीमी गति से चलाने के प्रत्येक bar
के लिए निम्नलिखित की तरह एक प्रवेश के साथ,: bars_foos
एसक्यूएल से फ़ील्ड दिखाएं
bars_foos कॉलम (1.1ms) (0.6ms)
bars_foos
जांच सम्मिलित करें (bar_id
,foo_id
) मैं को देखा मान (100, 117200)
ar-एक्सटेंशन, लेकिन import
फ़ंक्शन किसी मॉडल (मॉडल.इम्पपोर्ट) के बिना काम नहीं कर रहा है जो एक जॉइन टेबल के लिए इसका उपयोग रोकता है।
क्या मुझे एसक्यूएल लिखने की ज़रूरत है, या रेल के पास एक सुंदर तरीका है?
वास्तव में? कोई नहीं? आप लोग सभी ले-अप और "सर्वोत्तम अभ्यास" प्रश्नों पर कूदते हैं :) – klochner