NameError: неинициализированная константа Item

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

фрагмент кода:

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

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

1 ответ

Решение

В классе Item вы устанавливаете таблицу "my_items", но в схеме вы создаете таблицу "items".

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

Другие вопросы по тегам