在rails中生成模型时,它会创建一个框架迁移文件。
in has
create_table :model_names do |t|
t.string :name
t.string :address
t.timestamps
end
传递什么对象为t。
当我读到本书的这一部分时,我想知道它是什么,但它从未解释过。后来我在form_for
帮助器中学会了将|f|
传递到它的块中,f是一个FormBuilder
对象,这让我来到这里问。我的意思是,它显然并不重要,但是当缺少知识时,它会让我感到烦恼。
答案 0 :(得分:6)
答案是ActiveRecord::ConnectionAdapters::TableDefinition
我怎么知道?
class CreateFoos < ActiveRecord::Migration
def change
create_table :foos do |t|
puts "the answer is: " + t.class.to_s
t.string :foo
t.timestamps
end
end
end
答案 1 :(得分:1)
使用pry(或ruby调试器)是一种有趣,简单的探索方式。
class CreateFoos < ActiveRecord::Migration
def change
create_table :foos do |t|
binding.pry
end
end
end
像apidock docs之类的东西经常在实际文本中提供答案。当他们不这样做时,查看源通常会以相对较短的顺序得出答案(在这种情况下确实如此)。