6

Rails アプリに次の:class_name属性を使用するモデルがありますhas_one

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

  # ...
end

現在、このクラスの移行に何を入れるべきか少しわかりません。参考書は使えますか?Rails は の列名として何を探し:main_barますか? 私はこのようにすることができますか?

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

ありがとう!

4

1 に答える 1

7

「has_one」関係を持つテーブルには何も入れません。foreign_key は他のテーブルに入ります。上記の例では、テーブルに外部キーを追加する必要がありbarsます。

移行では、次を使用できます。

t.references :foo

また:

t.integer :foo_id

どちらでも動作します。

于 2010-01-30T06:42:04.097 に答える