开发者

WHat object is passed into create_table block in Ruby on Rails

when you generate a model in rails, and it creates a skeleton migration file.

in has

create_table :model_names do |t|
  t.string :name
  t.string :address
  t.timestamps
end开发者_开发百科

What object is being passed in as t.

When I read this part of the book I wondered what t was, but it never explained. Then later I learned in the form_for helper which passes an |f| into its block, that the f was a FormBuilder object, and this made me come here and ask. I mean, it obviously isn't important, but it bugs me when knowledge is missing.


the answer is ActiveRecord::ConnectionAdapters::TableDefinition how do I know?

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


Playing with pry (or the ruby debugger) is a fun, easy way to explore.

class CreateFoos < ActiveRecord::Migration
  def change
    create_table :foos do |t|
      binding.pry  
    end
  end
end

Things like the apidock docs often provide answers in actual text. When they don't, viewing the source often leads to the answer in relatively short order (it does, in this case).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜