gpt4 book ai didi

mysql - Rails has_many :through, 未定义方法

转载 作者:行者123 更新时间:2023-11-29 21:30:30 24 4
gpt4 key购买 nike

在处理 Rails 中的多对多关系时遇到一些问题。我有三个模式:

  1. 订单
  2. 项目
  3. 逐项列出

一个订单通过逐项列出多个项目,反之亦然。

查询 Item.find(1).orders 工作正常,但是当我尝试 Order.find(1).items 时它返回:

NoMethodError: undefined method `items' for #<Order:0x007fcad3bb3258>

这是我的代码:

架构.rb

create_table "itemizeds", force: :cascade do |t|
t.integer "item_id", limit: 4
t.integer "order_id", limit: 4
t.integer "quantity", limit: 4
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end

create_table "items", force: :cascade do |t|
t.string "title", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end

create_table "orders", force: :cascade do |t|
t.integer "customer_id", limit: 4
t.integer "store_id", limit: 4
t.integer "order_id", limit: 4
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.decimal "price", precision: 8, scale: 2
t.decimal "discount", precision: 8, scale: 2
end

Order.rb(模型)

class Order < ActiveRecord::Base
has_many :itemized
has_many :items, :through => :itemized
end

Item.rb(模型)

class Item < ActiveRecord::Base
has_many :itemized
has_many :orders, :through => :itemized
end

Itemized.rb(模型)

class Itemized < ActiveRecord::Base
belongs_to :item
belongs_to :order
end

不确定是否会造成干扰,但还有商店模型,并且商店有很多订单。

感谢您的帮助和时间!

最佳答案

如果我查看 http://guides.rubyonrails.org/association_basics.html 中的多对多关联我明白了

class Physician < ActiveRecord::Base
has_many :appointments
has_many :patients, through: :appointments
end

class Appointment < ActiveRecord::Base
belongs_to :physician
belongs_to :patient
end

class Patient < ActiveRecord::Base
has_many :appointments
has_many :physicians, through: :appointments
end

所以我认为这是一个多元化的问题。尝试使用 :through => :itemizeds 代替。

关于mysql - Rails has_many :through, 未定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35303355/

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