运行rails生成scaffold不会生成模型

如果我输入(完全复制/粘贴“rails g scaffold –help”)

rails generate scaffold purchase amount:decimal tracking_id:integer:uniq 

然后创建控制器,视图,创建模型..但它不包含任何属性。 它实际上包含:

 class Purchase < ActiveRecord::Base end 

我错过了什么吗?

版本
Rails 3.2.0
ruby 1.8.7(2010-01-10 patchlevel 249)[universal-darwin11.0]
Mac OSX Lion

这实际上是正确的。 通常,如果你正在制作一些随机的Ruby程序并且你创建了一个类,你可能想要抛出一些实例变量等,但现在它在Rails中是如何工作的。 模型既是类,也是数据库表。

db/migrate您将看到在您的数据库中创建Purchase表的迁移文件,在里面您将看到它生成您要求的列。 将数据保存到数据库时,您将保存实例化对象(通常)。

打开Rails控制台(在您的终端中键入rails console )并尝试以下操作:

 Purchase.count Purchase.create!(:tracking_id => 1) Purchase.count my_purchase = Purchase.first my_purchase.tracking_id 

您将首先看到数据库中有0个购买对象/行。 然后,您可以创建一个,并为您的实例变量(跟踪ID)传入一个值。 再次检查计数时,您将看到1.当您抓取项目中的第一个(也是唯一的)项目时,您将能够使用动态tracking_id方法作为访问者。

我建议你更多地阅读Rails以了解更多关于为什么这是正确的和正在发生的事情。