这是一个关于如何在Ruby中定义方法和类以及如何读取API文档的问题。简而言之:如何定义的create_table
方法/进口/继承,因此它在ActiveRecord::Migration
可用,在这样的代码:这些方法如何在Rails Migration类中使用create_table?
class CreateProducts < ActiveRecord::Migration
def up
create_table :products do |t|
t.string :name
...
从Java世界的到来,我预计API docs提供指向基类或混入其中,一切都被定义了。但是,如果我查看Migration
的页面,我会看到一些有用的手写文档,但没有链接到create_table
的最详细的权威定义。我用谷歌找到它ActiveRecord::ConnectionAdapters::SchemaStatements
,但即使看着这两个文件的源代码:
Migration in git
create_table in git
我看不出create_table
被带入范围在Migration
。该类中动态创建
我认为这些方法仅在类eval的类CommandRecorder中定义。 – Kaeros 2013-03-20 22:31:55
@Kaeros感谢您的纠正,从我的手机中查看它。我相应编辑。 – fmendez 2013-03-20 22:40:01
在迁移下没有加载CommandRecorder?所以我可以说'Migration :: CommandRecorder.new.create_table',但不是'Migration.new.create_table'。 – 2013-03-21 15:37:15