2016-06-27 10 views
0

Ich arbeite gerade an einer Ruby on Rails App. Ich versuche einige Objekte vom Typ Item zu erstellen, aber es kann mein Modell nicht finden, das bereits definiert ist. Was mache ich falsch?NameError: nicht initialisierte Konstante Item

Schnipsel:

parse.rake (app/lib/tasks):

item = Item.create!(id: item_array['id'], path: item_array['path'], type: item_array['type'], lang: item_array['lang'], component: item_array['component'], 
      content: item_array['content'], title: item_array['title'], index: item_array['index'], tags: item_array['tags'], created_at: item_array['created_at'], 
      updated_at: item_array['updated_at'], keyword: item_array['keyword'], description: item_array['description']); 

item.rb (app/Modelle)

class Item < ActiveRecord::Base 
    self.table_name = 'my_items' 
    self.primary_key = 'id' 
end 

schema.rb (app/db):

ActiveRecord::Schema.define(version: 20160623145822) do 


create_table 'items', force: :cascade, options: 'ENGINE=InnoDB DEFAULT CHARSET=utf8' do |t| 
    t.string 'path' 
    t.string 'type' 
    t.string 'lang' 
    t.string 'component' 
    t.json  'content' 
    t.string 'title' 
    t.integer 'index' 
    t.json  'tags' 
    t.string 'keyword' 
    t.text  'description', limit: 65535 
    t.datetime 'created_at',    null: false 
    t.datetime 'updated_at',    null: false 
    end 

end 

Antwort

2

In der Klasse Artikel legen Sie eine Tabelle 'meine _items ', aber in diesem Schema erstellen Sie Tabellenelemente.

Ich denke, Sie können table_name löschen und primary_key in Modell Item ändern. Da RoR standardmäßig die 'Elemente' der Tabelle und den Primärschlüssel 'id' verwendet.

+0

vielen dank, es funktioniert jetzt. – fr0styy