2016-06-27 6 views
0

В настоящее время я работаю над приложением Ruby on Rails. Я пытаюсь создать некоторые объекты типа Item, но он не может найти мою модель, которая уже определена. Что я делаю не так?NameError: uninitialized constant Item

сниппет:

parse.rake (приложение/Lib/задачи):

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 (приложение/модели)

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

schema.rb (приложение/дб):

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 

ответ

2

В классе Item вы установили таблицу 'my _items ', но в схеме вы создаете элементы таблицы.

Я думаю, вы можете удалить имя_таблицы и изменить primary_key в элементе модели. Поскольку RoR по умолчанию будет использовать элементы таблицы и первичный ключ 'id'.

+0

спасибо большое, сейчас он работает. – fr0styy