2010-01-30 6 views
6

has_oneEğer kullanıyorum: class_ame özniteliği has_one'a, ben göçüme ne koyarım?

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

    # ... 
end 

:class_name özniteliğini kullanan Rails uygulamasında bir modelim var. Şimdi bu sınıfa geçiş için nelere dikkat edeceğimi biraz emin değilim. Referansları kullanabilir miyim? Rails, :main_bar için sütun adı olarak ne arayacak? Bunu böyle yapabilir miyim?

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 

Teşekkürler!

cevap

7

Tabloda "has_one" ilişkisiyle hiçbir şey eklemezsiniz. Foreign_key diğer tabloya gider. Yukarıdaki örnekte, bars tablonuza yabancı bir anahtar eklemeniz gerekir.

taşımada kullanabilirsiniz:

t.references :foo 

ya: Ya biri çalışacaktır

t.integer :foo_id 

.