has_many_through NameError: uninitialized constant

i=Item.first

i.item_properties

NameError: uninitialized constant Item::ItemProperties

class Item < ApplicationRecord
has_many :boxes
has_many :item_pictures
has_many :pictures, through: :item_pictures
has_many :item_item_properties, primary_key: ‘item_type’, foreign_key: ‘item_type’
has_many :item_properties, through: :item_item_properties
ITEM_TYPES = [‘General’, ‘Book’, ‘Record’, ‘Magazine’, ‘Pez dispenser’, ‘CD’, ‘VHS casette’]
validates :item_type, inclusion: ITEM_TYPES
attr_accessor “Year”

end

class ItemItemProperty < ApplicationRecord
belongs_to :items, primary_key: ‘item_type’, foreign_key: ‘item_type’
belongs_to :item_properties, primary_key: ‘item_type’, foreign_key: ‘item_type’
end

class ItemProperty < ApplicationRecord
has_many :item_item_properties, primary_key: ‘item_type’, foreign_key: ‘item_type’
has_many :items, through: :item_item_properties
end

ItemItemProperty is wrong, belongs_to association should be singular not plural: belongs_to :item and belongs_to :item_property