1
class User < ActiveRecord::Base

has_many :comments

end


class Comment < ActiveRecord::Base

belongs_to :user

end

次に、rake db:migrate を実行しました。Comment テーブルに「user_id」フィールド/列がありません。私も試しました:rake db:drop、rake db:create、rake db:migrate。私はおそらくステップを逃しています、何かアイデアはありますか?

4

2 に答える 2

3

移行を定義する必要があります。

コメントモデルを作成するとき

rails generate model comment

rails は、your_appication_root/db/migrate/ にも移行ファイルを生成します。

class CreateComments < ActiveRecord::Migration
  def change
    create_table :comments do |t|
       t.references :user
       t.text, :content
       t.timestamps
    end
  end
end

あなたにとって重要な行は

t.references :user

または、次のように直接定義できます

t.integer :user_id
#but this do not add the db index
于 2012-04-28T18:03:57.903 に答える
2

それらを移行に追加する必要があります。

新しい移行でこのように定義できます

add_column :comments, :user_id, :int

または移行を変更してヘルパーを使用する

create_table :comments do |t|
  ...
  t.references :user
end
于 2012-04-28T18:04:07.920 に答える