NameError: uninitialized constant Item
NameError: uninitialized constant Item
我目前正在 Rails 应用上开发 Ruby。我正在尝试创建一些 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 (app/models)
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
在 class 项目中你设置了 table 'my_items',但在方案中,你正在创建 table 'items'.
我认为您可以删除 table_name 并更改模型项目中的 primary_key。
因为 RoR 默认会使用 table 'items' 和主键 'id'.
我目前正在 Rails 应用上开发 Ruby。我正在尝试创建一些 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 (app/models)
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
在 class 项目中你设置了 table 'my_items',但在方案中,你正在创建 table 'items'.
我认为您可以删除 table_name 并更改模型项目中的 primary_key。 因为 RoR 默认会使用 table 'items' 和主键 'id'.