Sono novizio di Rails.
Ho due modelli Categoria e prodotto come segue: -ActiveRecord :: SubclassNotFound: il meccanismo di ereditarietà a tabella singola non è riuscito a individuare la sottoclasse
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
E il mio schema.rb è la seguente: -
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
In console Rails ho creato due prodotti con due prodotti con lo Product.create comando
[#<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">]`
e ha creato due categorie con il comando diCategory.create nella console
<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">
Ora, Product.all funziona bene, ma Category.all dà
ActiveRecord :: SubclassNotFound: il meccanismo di ereditarietà a tabella singola non è riuscito a individuare la sottoclasse: 'abbigliamento'. Questo errore viene generato perché la colonna 'tipo' è riservata per l'archiviazione della classe in caso di ereditarietà. Rinominare questa colonna se non si intende utilizzarlo per l'archiviazione della classe di ereditarietà o sovrascrivere Category.inheritance_column per utilizzare un'altra colonna per tali informazioni.
Cosa c'è che non va? Voglio fare una relazione tra Categoria e Prodotto come
una categoria has_many prodotti e prodotti appartiene a una categoria.
Grazie. Ora ho cambiato il 'tipo' in 'nome'. ma quando faccio category = Category.first e poi 'category.products' mostra solo il prodotto con id = 1.it dovrebbe mostrare tutti i prodotti in quella categoria. – mrudult
'Category.first.products' restituirà sempre (una serie di - per semplicità perché non ricordo il nome esatto del tipo) tutti i prodotti associati a questa categoria. –
Yup ha avuto qualche errore di battitura. Funziona bene. – mrudult