2015-04-05 58 views
2

我正在学习Rails Crash课本,并且该项目是创建一个社交tumblr样式的克隆。我创建了一个只有名称和ID(并已迁移)的用户模型,现在我试图实现tumblr所做的以下/订阅风格。该书具有以下创建一个新的模型和迁移:在postgresql数据库迁移中遇到问题

bin/rails g model Subscription leader:references follower:references 

思想是领导者将人跟着,和随动显然是跟随者。两者都会引用User表中的id。

问题在于迁移。我得到如下:

PG::UndefinedTable: ERROR: relation "leaders" does not exist 
: ALTER TABLE "subscriptions" ADD CONSTRAINT "fk_rails_7b4891a3a6" 
FOREIGN KEY ("leader_id") 
    REFERENCES "leaders" ("id") 

再加上一堆其他的东西,看起来几乎一模一样。

虽然我假设它抛出一个错误,因为没有与它自己的ID的领导者表存在,有没有办法解决迁移引用user.id为每个引用,或者我会手动需要创建每列?

回答

1

我认为这是一个Postgres特定的问题。您可以通过以下方式绕过它:

bin/rails g model Subscription leader_id:integer:index follower_id:integer:index 
+0

谢谢埃里克!唯一令人失望的是它不会生成带有nice_to_的好模型:以这种方式引用,但这不是问题。 – Spentacular 2015-04-05 15:04:09

+1

Eww,新问题。有没有办法通过迁移将foreign_key添加到这两列中? – Spentacular 2015-04-05 15:14:21

+0

你的意思是直接在命令行中吗?我不这么认为,但你总是可以手动编辑该迁移。 – 2015-04-10 01:38:17

相关问题