这是我第一次尝试制作rails项目,而且我还在使用迁移命令。
我遵循了本教程教程。当我尝试使用迁移:rake db:migrate时,我得到了以下错误:
rake aborted!
TypeError: Books is not a class
/home/dudi/tutorials/books/db/migrate/20150227191301_books.rb:1:in `<top (required)>'
TypeError: Books is not a class
/home/dudi/tutorials/books/db/migrate/20150227191301_books.rb:1:in `<top (required)>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)但文件中说,图书是一个类:
class Books < ActiveRecord::Migration
def self.up
create_table :books do |t|
t.column :title, :string, :limit => 32, :null => false
t.column :price, :float
t.column :subject_id, :integer
t.column :description, :text
t.column :created_at, :timestamp
end
end
def self.down
drop_table :books
end
end,我在这里做错什么了?
编辑:
我试图将class Book更改为class create_Book,并将文件名更改为create_Book。当我输入rake db:migrate时,什么都没有发生(我想它成功了吗?),在网页上我得到了这样的消息:
Couldn't find Book with 'id'=all关于文件book_controller
class BookController < ApplicationController
#printout of all the books in the database
def list
@books = Book.find(:all)
end
end我还试图将Book.find更改为create_Book.find --我得到了以下错误:
undefined local variable or method `create_Book'发布于 2015-02-27 20:47:34
首先,您想要图书能够在数据库中存储数据吗?因为在迁移中有一个drop_table行。这意味着您将创建该表,然后删除它。
其次,rake:是迁移的最后一步。在本教程中,您使用了“rails生成模型”命令吗?还是您试图先运行迁移?(注: rails生成模型还将自动为您生成一个迁移文件)
首先要创建一个名为Books的模型,然后可以运行迁移。您收到的错误是在您的模型中查找图书类,但找不到。
如果您已经在您的模型中有一个Books类,请编辑此类以包含该文件。如果我们能够看到您的实际模型,而不仅仅是迁移,它将为我们提供关于为什么rails认为那里没有图书模型的信息。
您的图书模型应该从ActiveRecord::Base继承,或者从从ActiveRecord::Base继承的另一个类继承。是这样吗?
https://stackoverflow.com/questions/28772959
复制相似问题