【发布时间】:2016-06-06 16:57:47
【问题描述】:
我有两个设置两个数据库表,分别称为“积分”和“活动”。我想通过如下设置关联来为表“points”提供一个外键“activity_id”:
class Activity < ActiveRecord::Base
belongs_to :user
has_many :points, dependent: :destroy
...
end
和
class Point < ActiveRecord::Base
belongs_to :activity
end
此外,我还有以下用于创建点表的迁移文件:
class CreatePoints < ActiveRecord::Migration
def change
create_table :points do |t|
t.integer :activity_id
t.timestamps null: false
t.boolean :activities_completed, array: true, default: []
t.integer :point_value
t.float :time_left
end
end
end
但是,当我跑步时
rake db:reset
rake db:migrate
rake db:seed
然后检查表格点
rails c
Point.column_names
那么外键丢失了:
irb(main):001:0> Point.column_names
=> ["id", "created_at", "updated_at", "activities_completed", "point_value", "time_left"]
我做错了什么?如何使外键 activity_id 成为积分表的列?
我是 Ruby 和 Rails 的新手。我的 Rails 版本是 4.24。任何帮助表示赞赏。
【问题讨论】:
标签: ruby-on-rails rails-migrations