以下代码在Ruby on Rails 4.2.3
中作为示例提供create_table :products do |t|
t.integer :shop_id, :creator_id
t.string :item_number, index: true
# ^^^^^^
t.string :name, :value, default: "Untitled"
t.timestamps null: false
end
这是.string
方法还是其他什么?它来自哪个类或模块?我已经浏览了github上ActiveRecord::ConnectionAdapters::TableDefinition
的源代码,但没有找到任何有趣的内容。
答案 0 :(得分:1)
这些是column方法的简写。您以较长形式突出显示的行也可以表示如下:
t.column :name, :string
它们在schema_definitions文件中有点动态生成(来自硬编码列表)。