ホームページ  >  に質問  >  本文

ruby-on-rails - ruby中do关键字的用法

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|到底是什么意思? 求高人解答

PHP中文网PHP中文网2762日前1066

全員に返信(3)返信します

  • 伊谢尔伦

    伊谢尔伦2017-04-21 11:18:31

    リーリー

    反復ではなくコールバックです。

    Ruby のコールバックについて:
    http://stackoverflow.com/questions/1677861/how-to-implement-a-callback-in-ruby

    Rails の移行について:
    http://guides.rubyonrails.org/migrations.html

    jQuery で Ajax を実行したことがある場合は、次のような経験があるはずです:

    リーリー

    $.get()メソッドの戻り値はtest.phpのレスポンスボディで、最初のパラメータはリクエストされたURL、2番目のパラメータはコールバック関数です。この関数はパラメータの値としてtest.phpのレスポンスボディを受け取ります。データを渡し、ポップアップ ウィンドウの表示を渡します。

    この移行ステートメントは次のように理解できます。

    リーリー

    返事
    0
  • ringa_lee

    ringa_lee2017-04-21 11:18:31

    こちら: /q/1010000000266437 すでに戻って、再度ここに移動しました。

    リーリー

    do|x|...end には特別な意味はなく、{|x|} と同様に、単にブロックを表します。 このコードには反復があり、実際には次のようになります:

    リーリー

    はい、もちろんこれも合法です:

    リーリー

    すると括弧が省略できるので上記のようになります。

    Ruby がそのような関数を実装するには、次のものだけが必要です:

    リーリー

    イテレータのより具体的な使用法については、こちらをご覧ください: http://blog.csdn.net/classwang/article/details/4692856

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-21 11:18:31

    do ... end はブロックである { ... } と同等であり、Ruby メソッドはブロック パラメーターを受け入れることができます

    返事
    0
  • キャンセル返事