質問: railsでUserモデルを作ったのですが、db/migrate/[timestamp]_create_users.rb が class CreateUsers < ActiveRecord::Migration[5.1] def change create_table :users do |t| t.string :name t.string :email t.timestamps end end end となっているのですが、create_table :users do |t| の部分がわかりません。 繰り返し処理ということはわかるのですが、create_table :users がどこから来たのかわかりません。どなたかご教授お願い致します。
回答: これは、形としてはRubyのコードですが、意味論的には別な意味合いを持っている、いわゆる**DSL**(ドメイン固有言語)です。`create_table`は、`ActiveRecord::ConnectionAdapters::SchemaStatements`にあるメソッドです(Rails API) あと、 > > 繰り返し処理ということはわかるのですが > > > Rubyでは、繰り返しを意図しない`do`-`end`も現れます。`create_table`以下の`do`-`end`は、「内部でテーブル定義するための特殊なメソッドを使えるようにする」という効果を持つもので、繰り返しではありません。