I'll start off by saying I am new to Ruby and Rails... Suppose I run the following;
$ script/generate model person which creates: class CreatePeople < ActiveRecord::Migration def self.up create_table :people do |t| t.timestamps end end def self.down drop_table :people end end I added in some code (the author instructs me to) such that it now reads: class CreatePeople < ActiveRecord::Migration def self.up create_table :people do |t| t.string :name, :type, :email, :camera #ADDED IN t.timestamps end end def self.down drop_table :people end end I do not understand, at a ruby level, what is going on. It appears I have a class (static) method called up. The first thing I am doing is calling Migration's create_table method. This leads to question 1: 1:) Migration does not have create_table method. How is Ruby finding create_table? Now the create_table method appears to accept two parameters. The first being a symbol, and the second being a code block. I am assuming that the only thing obtainable from this code block is the last line t.timestamps, as the last line is returned in ruby. So question number two: 2: What does this line even do? t.string :name, :type, :email, :camera #ADDED IN What is t being passed in? why no comma between t.string and :name. And my final question... How come I cannot write the code as follows (Aptana will not compile it)? def self.up create_table (:people,{|t| t.string :name, :type, :email, :camera t.timestamps }) end BTW as I hunt I do see this in Migration: def method_missing(method, *arguments, &block) It is taunting me. Feel free to respond to me like I am four. You could try to insult me but you would fail :-) Thanks, Cris -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---