ruby-on-rails - postgresql 数据库迁移中的关系问题

标签 ruby-on-rails postgresql ruby-on-rails-4

我正在学习 Rails Crash Course 这本书,项目是创建一个社交 tumblr 风格的克隆。我已经创建了一个只有名称和 ID(并且已经迁移)的用户模型,现在我正在尝试实现 tumblr 所做的以下/订阅样式。书中有以下创建新模型和迁移的内容:

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,或者我是否只需要手动创建每个专栏?

最佳答案

我认为这是 Postgres 特有的问题。您可以使用以下方法绕过它:

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

关于ruby-on-rails - postgresql 数据库迁移中的关系问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29454186/

相关文章:

ruby-on-rails - 对象ID和youtube视频ID与youtube_it gem相同

ruby-on-rails - 如何阻止 css 文件在 Rails 测试环境中被预编译

sql-server - 如何为不同的数据库多次运行 NUnit onetimesetup

HTML 表单 : POST an array of objects

ruby-on-rails - rails 中 get 和 match 的区别

ruby-on-rails - 通过关联使用 has_many 创建获取 NoMethodError(未定义方法 `name' 为 nil :NilClass)

javascript - 使用 Rails button_to_function 时向 js 函数传递一个值

ruby-on-rails - Ruby - 如何为 require() 定义参数?

sql - PostgreSQL 的函数/子查询表

postgresql - 数据库触发器限制 Postgres 中的最大表大小