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。我可能错过了一步,有什么想法吗?
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。我可能错过了一步,有什么想法吗?
您必须定义迁移。
当您创建评论模型时
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
您必须将它们添加到迁移中。
您可以在新迁移中定义是否像这样
add_column :comments, :user_id, :int
或更改您的迁移并使用帮助程序
create_table :comments do |t|
...
t.references :user
end