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参数