2010-01-30 18 views
6

मेरे पास मेरे रेल ऐप में एक मॉडल है जो has_one के लिए :class_name विशेषता का उपयोग करता है:यदि मैं उपयोग करता हूं: class_name विशेषता है_ऑन में, मैं माइग्रेशन में क्या डालूं?

class Foo < ActiveRecord:Base 
    has_one :main_bar, :class_name => "Bar" 

    # ... 
end 

मुझे इस बात के बारे में कुछ अनिश्चितता है कि इस कक्षा के लिए माइग्रेशन में क्या रखा जाए। क्या मैं संदर्भों का उपयोग कर सकता हूं? Xzx30 के लिए कॉलम नाम के रूप में रेल क्या खोज रहे हैं? क्या मैं ऐसा कर सकता हूं?

class CreateFoos < ActiveRecord::Migration 
    def self.up 
    create_table :foos do |t| 
     t.references :main_bar 
    end 
    end 

    def self.down 
    drop_table :foos 
    end 
end 

धन्यवाद!

उत्तर

7

आप "has_one" रिश्ते के साथ तालिका में कुछ भी नहीं डालते हैं। विदेशी_की दूसरी मेज में जाती है। उपरोक्त आपके उदाहरण में, आपको अपनी bars तालिका में एक विदेशी कुंजी जोड़नी होगी।

प्रवास में आप उपयोग कर सकते हैं:

t.references :foo 

या:

t.integer :foo_id 

या तो एक काम करेंगे।

संबंधित मुद्दे