如果我输入(完全复制/粘贴“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
答案 0 :(得分:3)
这实际上是正确的。通常,如果你正在制作一些随机的Ruby程序并且你创建了一个类,你可能想要输入一些实例变量等等,但现在它在Rails中是如何工作的。模型既是类,也是数据库表。
在db/migrate
中,您会看到在您的数据库中创建购买表的迁移文件,在里面您将看到它生成您要求的列。将数据保存到数据库时,您将保存一个实例化对象(通常)。
打开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以了解更多关于为什么这是正确的以及发生了什么。