Jestem początkującym użytkownikiem Rails.
mam dwa modele Kategoria i produktu w następujący sposób: -ActiveRecord :: SubclassNotFound: mechanizm dziedziczenia pojedynczego zbioru nie zdołał zlokalizować podklasy
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
A moja schema.rb przedstawia się następująco: -
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
W konsoli Rails Stworzyłem dwa produkty z dwoma produktami za pomocą Product.create polecenie
[#<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">]`
i stworzył dwie kategorie ze polecenia Category.create w konsoli
<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">
Teraz Product.all działa dobrze, ale Category.all daje
ActiveRecord :: SubclassNotFound: mechanizm dziedziczenia pojedynczego zbioru nie zdołał zlokalizować podklasy: "ubranie". Ten błąd został zgłoszony, ponieważ kolumna "typ" jest zarezerwowana do przechowywania klasy w przypadku dziedziczenia. Zmień nazwę tej kolumny, jeśli nie zamierzasz jej użyć do przechowywania klasy dziedziczenia lub zastąpienia kolumny Category.inheritance_column, aby użyć innej kolumny dla tej informacji.
Co jest nie tak? Chcę utworzyć relację między kategorią a produktem, np.
kategoria has_many produkty i produkty należą do kategorii.
Dzięki. Teraz zmieniłem "typ" na "nazwa". ale kiedy robię kategorię = Category.first, a następnie "category.products" pokazuje tylko produkt o id = 1.it powinien pokazywać wszystkie produkty w tej kategorii. – mrudult
'Category.first.products' zawsze zwróci (tablica - dla uproszczenia, ponieważ nie pamiętam dokładnej nazwy typu) wszystkie produkty powiązane z tą kategorią. –
Yup miał literówkę. To działa dobrze. – mrudult