rails控制台错误中的新记录

时间:2014-06-27 21:20:17

标签: ruby-on-rails rails-console

已经提出了一个非常类似的问题,我无论如何都无法解决问题。我试图在rails控制台中创建一个新记录,我收到此错误:

    2.1.2 :001 > subject = Subject.new
Mysql2::Error: Table 'simple_cms_development.subjects' doesn't exist: SHOW FULL FIELDS FROM `subjects`
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'simple_cms_development.subjects' doesn't exist: SHOW FULL FIELDS FROM `subjects`

有人可以非常具体地告诉我该怎么办?

这里是subject.rb:

class Subject < ActiveRecord::Base
end

和schema.rb:

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

  create_table "admin_users", force: true do |t|
    t.string   "first_name", limit: 25
    t.string   "last_name",  limit: 50
    t.string   "email",                 default: "", null: false
    t.string   "username",   limit: 25
    t.string   "password",   limit: 40
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  create_table "pages", force: true do |t|
    t.integer  "subject_id"
    t.string   "name"
    t.string   "permalink"
    t.integer  "position"
    t.boolean  "visible",    default: false
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  add_index "pages", ["permalink"], name: "index_pages_on_permalink", using: :btree
  add_index "pages", ["subject_id"], name: "index_pages_on_subject_id", using: :btree

  create_table "sections", force: true do |t|
    t.integer  "page_id"
    t.string   "name"
    t.integer  "position"
    t.boolean  "visible",      default: false
    t.string   "content_tipe"
    t.text     "content"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  add_index "sections", ["page_id"], name: "index_sections_on_page_id", using: :btree

end

create_subjects.rb:

class CreateSubjects < ActiveRecord::Migration
  def up
    create_table :subjects do |t|
      t.string "name"
      t.integer "position"
      t.boolean "visible" :default => false
      t.timestamps
    end
  end

  def down
        drop_table :subjects
  end

end

2 个答案:

答案 0 :(得分:1)

您需要创建一个主题表,用于定义要在主题实例中保留的属性。

所以说你想要标题和描述。使用此命令创建迁移:

rails generate migration subjects title:string description:text

然后运行命令

rake db:migrate

然后尝试使用Subject.new命令

或者,如果您不想保留任何主题属性,请将主题类定义更改为:

class Subject

end

答案 1 :(得分:1)

中添加逗号
t.boolean "visible" :default => false`

,如

t.boolean "visible", :default => false`

然后运行rake db:migrate

确保config/database.yml文件在您的计算机上具有数据库连接的有效条目。查看development节。

有关guides.rubyonrails.org/migrations.html

的迁移的更多信息

有关在

配置数据库和database.yml文件的更多信息

http://edgeguides.rubyonrails.org/configuring.html#configuring-a-database