Я новичок в Rails. У меня есть две модели Категория и Продукт следующим образом: -
class Category < ActiveRecord::Base
attr_accessible :type
has_many :products
end
class Product < ActiveRecord::Base
attr_accessible :category_id, :color, :price, :title
belongs_to :category
end
И мой schema.rb выглядит следующим образом: -
ActiveRecord::Schema.define(:version => 20130725220046) do
create_table "categories", :force => true do |t|
t.string "type"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "products", :force => true do |t|
t.integer "category_id"
t.decimal "price", :precision => 10, :scale => 0
t.string "title"
t.string "color"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
end
В консоли Rails я создал два продукта с двумя продуктами с командой Product.create
[#<Product id: 1, category_id: 1, price: 500, title: "shirt", color: "blue", `created_at: "2013-07-25 22:04:54", updated_at: "2013-07-25 22:04:54">, #<Product id: 2, category_id: 1, price: 600, title: "tees", color: "black", created_at: "2013-07-25 22:05:17", updated_at: "2013-07-25 22:05:17">]`
И создал две категории с командой Category.create в консоли
<Category id: 1, type: "clothing", created_at: "2013-07-25 22:03:54", updated_at: "2013-07-25 22:03:54"><Category id: 2, type: "footwear", created_at: "2013-07-25 22:04:02", updated_at: "2013-07-25 22:04:02">
Теперь Product.all работает отлично, но Category.all дает
ActiveRecord:: SubclassNotFound: механизм наследования с одной таблицей не смог найти подкласс: "одежда". Эта ошибка возникает из-за того, что тип столбца зарезервирован для хранения класса в случае наследования. Переименуйте этот столбец, если вы не собираетесь использовать его для хранения класса наследования или перезаписать Category.inheritance_column, чтобы использовать другой столбец для этой информации.
Что там плохого? Я хочу установить отношения между категорией и продуктом, например, категория has_many продуктов и продуктов принадлежит к категории.