0

RoR初心者です。モデル間の関係を確立することに基本的な疑問があります。Employee と Manager の簡単な例を見てみましょう。マネージャーは多くの従業員を管理し、従業員は 1 人のマネージャーに属します。スキーマ レベルでは、employee テーブルに managerid 外部キーがあります。

class Employee < ActiveRecord::Base
  attr_accessible :employee_id, :employee_name, :manager_id
  belongs_to :manager
end

class Manager < ActiveRecord::Base
  attr_accessible :manager_id, :manager_name
  has_many :employeees
end

モデルでそのような関係を指定したら、データベースでそのようなデータの整合性が維持されるようにするにはどうすればよいですか? rake db:migrate コマンドを実行しましたが、データベースには何の影響もないようです。データベース内のマネージャー テーブルと従業員テーブルの間に外部キーと主キーの関係を確立するにはどうすればよいですか? SQL Server 2008 を使用しています。

前もって感謝します。

4

2 に答える 2

1

モデルを生成したときに作成された移行ファイルを編集しましたか? 従業員の移行では、次のように外部キーを指定する必要があります。

class CreateEmployees < ActiveRecord::Migration
  def change
    create_table :employees do |t|
      t.string :manager_name
      t.integer :manager_id
    end
  end
end

移行ファイルは db/migrations フォルダーにあります。移行を従業員テーブルを作成する前の時点にロールバックして create_table ブロックを変更するか、新しい移行を作成して外部キーを追加することができます。

于 2013-06-18T12:55:48.613 に答える