class Books < ActiveRecord::Migration
def self.up
create_table :books do |t|
t.column :title, :string, :limit => 32, :null => false
t.column :price, :float
t.column :subject_id, :integer
t.column :description, :text
t.column :created_at, :timestamp
end
end
def self.down
drop_table :books
end
end
create_table :books do |t|
這一句 沒有迭代操作 為什麼會有 ruby do |t|
這句呢 這裏的 ruby do |t|
到底是什麼意思? 求高人解答
不是迭代而是回調。
關於Ruby的回呼:
http://stackoverflow.com/questions/1677861/how-to-implement-a-callback-in-ruby
關於Rails的Migration:
http://guides.rubyonrails.org/migrations.html
如果你用jQuery做過Ajax的話,應該有類似這樣的經驗:
$.get()
方法的回傳值是test.php的response body,第一個參數是請求的url,第二個參數就是回調函數,這個函數接受test.php的response body作為參數data的值,並且透過彈窗顯示。這條Migration語句你可以這麼理解。
在這裡:/q/1010000000266437 已經回過一遍了,再搬過來。
do|x|...end沒有什麼特殊的意義和{|x|}一樣,只是代表一個block而已, 這個程式碼中是有迭代出現的,他其實是類似:
的,當然這樣也是合法的:
然後因為括號可以省略就變成上面的樣子了。
對於ruby來說要實現這樣的功能,只需要:
關於迭代器更具體的用法可以看看這個:http://blog.csdn.net/classwang/article/details/4692856
do ... end 等價於{ ... },是一個block,ruby方法可以接block參數