gpt4 book ai didi

ruby-on-rails - 为什么 Rails 4 中的连接表会出现未知主键异常?

转载 作者:行者123 更新时间:2023-12-04 00:08:50 25 4
gpt4 key购买 nike

这些是我的模型:

class Product
has_many :line_items
has_many :orders, :through => :line_items
end

class LineItem
belongs_to :order
belongs_to :product
end

class Order
has_many :line_items
has_many :products, :through => :line_items
end

从 schema.rb:
  create_table "line_items", id: false, force: true do |t|
t.integer "order_id"
t.integer "product_id"
t.integer "quantity"
t.datetime "created_at"
t.datetime "updated_at"
end

我刚刚升级到 Rails 4,我的连接表停止工作。如果我这样做 @order.line_items ,它会抛出异常“模型 LineItem 中表 line_items 的未知主键”。 @order.products按预期工作。

我尝试删除并重新创建 line_items 表,并尝试安装 protected_attributes gem,但没有任何改变。

这是 the trace .

最佳答案

在模型中添加以下内容:

self.primary_key = [:order_id, :product_id]

我认为确保有一个 index 是明智的。在那些列上。

您可以通过以下迁移创建一个:
add_index :line_items, [:order_id, :product_id]

关于ruby-on-rails - 为什么 Rails 4 中的连接表会出现未知主键异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17630714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com