ruby-on-rails - Rails PG::UndefinedColumn:错误:列 carts_parts.[:part_id, :cart_id] 不存在

标签 ruby-on-rails postgresql activerecord migration join

看来我又一次遇到了与我的连接表中的关联有关的另一个问题。我有一个连接表 CartsParts,它用于 Carts 和 Parts 之间的多对多关系。关系是一个用户有一个购物车,一个购物车有很多部分,但是一个部分有很多并且属于购物车,因为多个用户可以有一个购物车。我的连接表有一个 cart_id 和一个 part_id。设置迁移后,我看到了这个错误:

Database error

这是我的零件模型

class Part < ActiveRecord::Base
  has_many :order_items
  has_and_belongs_to_many :carts, through: :carts_parts
  has_many :carts_parts

购物车模型

class Cart < ActiveRecord::Base
  has_many :order_items
  belongs_to :user
  has_many :carts_parts 
  has_many :parts, through: :carts_parts

CartsPart 模型

class CartsPart < ActiveRecord::Base
  has_many :parts
  has_many :carts
  self.primary_key = [:part_id, :cart_id]

CartsPart 表

 create_table "carts_parts", id: false, force: :cascade do |t|
    t.integer "cart_id", null: false
    t.integer "part_id", null: false
  end

购物车表

 create_table "carts", force: :cascade do |t|
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.integer  "user_id"
  end

和我的零件表

create_table "parts", force: :cascade do |t|
    t.string  "name"
    t.text    "description"
    t.integer "category_id"
    t.integer "price"
    t.boolean "active"
    t.integer "discount"
    t.string  "image"
    t.integer "quantity"
    t.integer "carts_part_id"
  end

感谢您帮助解决这个问题

最佳答案

你做的工作太多了。 habtm 模式在很大程度上依赖于约定。甚至连接表中名称的顺序也很重要。只要你follow the conventions as described那么您不需要定义 through 关系,也不需要定义主键。从你的模型中去掉这些东西,它应该开始工作了。

关于ruby-on-rails - Rails PG::UndefinedColumn:错误:列 carts_parts.[:part_id, :cart_id] 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36183758/

相关文章:

ruby-on-rails - 回形针中 `:path` 和 `:url` 之间的区别

ruby-on-rails - 为什么我的规范/支持文件没有被 rspec 接收?

ruby-on-rails - 一个 Rails 应用程序可以使用多个 Redis 实例吗?

sql - 将 SQL 语句作为记录值插入到 PostgreSQL 列中

ruby-on-rails - 预加载模型关联查找

ruby-on-rails - 谷歌身份验证错误: invalid_request Missing required parameter: client_id

postgresql - PostgreSQL 中复合类型数组的正确 OID 是什么?

python - 如何在 Heroku(使用 python)上的 web 和 worker(不同的 dynos)之间通信数据?

ruby-on-rails - 查找所有具有重复名称的用户

ruby-on-rails - 多个左连接与 rails 4