1
class User < ActiveRecord::Base

has_many :comments

end


class Comment < ActiveRecord::Base

belongs_to :user

end

然后我跑了:rake db:migrate。我的评论表中没有“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 回答