Rails has_many :through, 未定义的方法

Rails has_many :through, undefined method

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

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

一个订单有很多项目,反之亦然。

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

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

这是我的代码:

Schema.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