0

我目前正在开发一个 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
4

1 回答 1

2

在项目类中,您设置了一个表“my_items”,但在方案中,您正在创建表“项目”。

我认为您可以删除 table_name 并更改模型项目中的 primary_key。因为默认情况下,RoR 将使用表 'items' 和主键 'id'。

于 2016-06-27T11:56:02.747 回答