TableDefinition.string方法来自哪里?

时间:2015-07-27 02:42:52

标签: ruby-on-rails ruby

以下代码在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的源代码,但没有找到任何有趣的内容。

1 个答案:

答案 0 :(得分:1)

这些是column方法的简写。您以较长形式突出显示的行也可以表示如下:

t.column :name, :string

它们在schema_definitions文件中有点动态生成(来自硬编码列表)。