SlideShare a Scribd company logo
1 of 170
Rails基礎講座
  2012/03/14∼
自己紹介

• フリーエンジニア
• Rails歴4年くらい
• お仕事募集中
• twitter:@nysalor
Ruby?
Ruby?


• オブジェクト指向スクリプト言語
• 1993年にまつもとゆきひろさんが開発
Ruby?




Matz(まつもとゆきひろ)
Ruby?

• LISPやPerlにインスパイアされている
• 現在の最新版は1.9.3
• MatzRuby(CRuby)以外に色んな実装があ
 る(JRubyなど)
オブジェクト指向?
オブジェクト指向?


  ぐぐれ
Rails?
Rails?
• Rubyで書かれたWebアプリケーション
  フレームワーク

• 2004年にDavid Heinemeier Hanssonさん
  が開発

• MVCアーキテクチャ
Rails?




DHH(David Heinemeier Hansson)
MVC?
MVC?


ぐぐれ
MVC?
MVC?
MVC?
Model
MVC?
       Model


View
MVC?
       Model


View           Controller
MVC?
       Model


View           Controller


       User
MVC?
       Model


View           Controller


       User
MVC?
       Model


View           Controller


       User
MVC?
       Model


View           Controller


       User
MVC?
       Model


View           Controller


       User
MVC?
       Model


View           Controller


       User
MVC?
       Model


View           Controller


       User
Railsの特長

• ルールに沿って書いていけばWebアプ
 リケーションができる

• =レールに乗る(on Rails)
Railsの特長
Rails基礎講座


• Rubyの基本的な知識が必要
•
Rails基礎講座


• Rubyの基本的な知識が必要
•
• Rubyの基本的な知識が必要
•
Ruby基礎講座


• Rubyの基本的な知識が必要
• 【本題】Ruby基礎講座
インストール
インストール
インストール

• Mac
• Windows
• Linux/*BSD
• Solaris/PC98x1/X68000etc...
Mac

• 最初から入っている\(^o^)/
•
•
Mac

• 最初から入っている\(^o^)/古い!
•
•
Mac

• 最初から入っている\(^o^)/古い!
• Homebrew
•
Mac

• 最初から入っている\(^o^)/古い!
• Homebrew
• brew install ruby
Homebrew
% ruby -e "$(curl -fsSL https://
raw.github.com/mxcl/homebrew/master/
Library/Contributions/
install_homebrew.rb)"
% brew install sqlite3
% brew install readline
% brew install ruby
Windows

• One Click Installer
•
•
•
Windows

• One Click Installer
• http://rubyinstaller.org/downloads/
•
•
Windows

• One Click Installer
• http://rubyinstaller.org/downloads/
• sqlite dll
•
Windows

• One Click Installer
• http://rubyinstaller.org/downloads/
• sqlite dll
• http://www.sqlite.org/download.html
One Click Installer

• One Click Installer
• Ruby1.9.3-p125
• c:¥Ruby
• Add Ruby executables to your PATH
sqlite

• sqlite3.dll
• sqlite-dll-win32-x86-307100.zip
• http://www.sqlite.org/download.html
• c:¥Ruby¥binへコピー
Linux
Linux


ぐぐれ
Linux
Linux


• apt-get install ruby1.9 sqlite3
Rubyの使い方
Rubyの使い方
Rubyの使い方
テキストファイルにプログラムを書いて実行
Rubyの使い方
テキストファイルにプログラムを書いて実行
hello_world.rb
Rubyの使い方
テキストファイルにプログラムを書いて実行
hello_world.rb

   puts(“Hello,World!”)
Rubyの使い方
テキストファイルにプログラムを書いて実行
hello_world.rb

   puts(“Hello,World!”)

% ruby hello_world.rb
Rubyの使い方
テキストファイルにプログラムを書いて実行
hello_world.rb

   puts(“Hello,World!”)

% ruby hello_world.rb

       Hello,World!
Rubyの使い方
Rubyの使い方
コマンドラインにプログラムを書く
Rubyの使い方
    コマンドラインにプログラムを書く
% ruby -e 'puts("Hello,World!")'
Rubyの使い方
    コマンドラインにプログラムを書く
% ruby -e 'puts("Hello,World!")'

        Hello,World!
Rubyの使い方
Rubyの使い方
irb(Interactive Ruby shell)
Rubyの使い方
        irb(Interactive Ruby shell)
% irb
Rubyの使い方
         irb(Interactive Ruby shell)
% irb

  > puts(“Hello,World!”)
Rubyの使い方
          irb(Interactive Ruby shell)
% irb

  > puts(“Hello,World!”)


  Hello,World!
  => nil
  >
Rubyの使い方
Rubyの使い方
テキストファイルにプログラムを書いて実行
Rubyの使い方
テキストファイルにプログラムを書いて実行
       必要なもの
Rubyの使い方
テキストファイルにプログラムを書いて実行
          必要なもの


• エディタ
• ターミナル
エディタ
UTF-8が編集できれば何でもよい
エディタ
UTF-8が編集できれば何でもよい
      Mac/Linux
エディタ
     UTF-8が編集できれば何でもよい
               Mac/Linux

• vim
• emacs
• textmate
• cot editor
エディタ
UTF-8が編集できれば何でもよい
エディタ
UTF-8が編集できれば何でもよい
      Windows
エディタ
   UTF-8が編集できれば何でもよい
          Windows

• サクラエディタ
• 秀丸
• notepad++
ターミナル
ターミナル


• コマンドプロンプト
• ターミナル
• kterm
Rubyの文法
Rubyの文法
Rubyの文法
  基本
Rubyの文法
         基本

• 一行ずつ実行
• 行末の;は要らない
• 先頭に#を書くとコメント
Rubyの文法
         変数
ローカル変数
Rubyの文法
              変数
ローカル変数

   foo = 10
Rubyの文法
                 変数
ローカル変数

    foo = 10

   foo = “bar”
Rubyの文法
                 変数
ローカル変数

    foo = 10

   foo = “bar”

定義は要らない
Rubyの文法
                 変数
ローカル変数

    foo = 10

   foo = “bar”

定義は要らない
代入されたデータの型になる
Rubyの文法
         変数
ローカル変数
Rubyの文法
         変数
ローカル変数

条件分岐・ループの外には出て行かない
Rubyの文法
              変数
ローカル変数

条件分岐・ループの外には出て行かない

foo = 10
if foo > 9
  bar = foo
end
puts(bar)
Rubyの文法
                       変数
ローカル変数

条件分岐・ループの外には出て行かない

foo = 10
if foo > 9
  bar = foo
end           Error!

puts(bar)
Rubyの文法
           変数
インスタンス変数
Rubyの文法
                変数
インスタンス変数

    @foo = 10
Rubyの文法
                変数
インスタンス変数

    @foo = 10

 @を付けるとインスタンス内でずっと有効
Rubyの文法
           変数
インスタンス変数
Rubyの文法
                変数
インスタンス変数

 foo = 10
 if foo > 9
   @bar = foo
 end
 puts(@bar)
  => 10
Rubyの文法
       変数
配列
Rubyの文法
                     変数
配列

 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]
Rubyの文法
                     変数
配列

 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
                        変数
配列           array[0]


 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
                     変数
配列

 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
                         変数
配列            array[1]


 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
                     変数
配列

 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
                         変数
配列                array[2]


 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
                     変数
配列

 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
                      変数
配列                 array[3]


 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
                     変数
配列

 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
                     変数
配列                  array[4]


 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
                     変数
配列

 array = [1,2,3,4,5]
 string_array = [“alpha”, “bravo”, “charlie”]
 @array = [7,8,9,10]

 puts(array[1])
 # => 2
Rubyの文法
             変数
ハッシュ(連想配列)
Rubyの文法
                    変数
ハッシュ(連想配列)

  hash = {
    “alpha” => “able”,
    “bravo” => “baker”
  }
Rubyの文法
                    変数
ハッシュ(連想配列)

  hash = {
    “alpha” => “able”,
    “bravo” => “baker”
  }
  puts(hash[”bravo”])
  # => “baker”
Rubyの文法
  条件分岐
Rubyの文法
       条件分岐
if
Rubyの文法
                      条件分岐
if

     foo = 10
     if foo > 9
       puts(“foo is larger than 9!”)
     end
Rubyの文法
  条件分岐
Rubyの文法
         条件分岐
else
Rubyの文法
                        条件分岐
else

       foo = 10
       if foo > 9
         puts(“foo is larger than 9!”)
       else
         puts(“something wrong...”)
       end
Rubyの文法
  条件分岐
Rubyの文法
           条件分岐
unless
Rubyの文法
                     条件分岐
unless

    foo = 10
    unless foo > 11
      puts(“foo is smaller than 11!”)
    end
Rubyの文法
  ループ
Rubyの文法
         ループ
each
Rubyの文法
                      ループ
each

   animals = [“cat”, “dog”, “bird”]
   animals.each do |x|
    puts(x)
   end
Rubyの文法
                      ループ
each

   animals = [“cat”, “dog”, “bird”]
   animals.each do |x|
    puts(x)
   end
Rubyの文法
                      ループ
each

   animals = [“cat”, “dog”, “bird”]
   animals.each do |x|
    puts(x)                 ブロック変数
   end
Rubyの文法
                      ループ
each

   animals = [“cat”, “dog”, “bird”]
   animals.each do |x|
    puts(x)                 ブロック変数
   end

   # => “cat” “dog” ”bird”
Rubyの文法
         ループ
each
Rubyの文法
                      ループ
each

   animals = [“cat”, “dog”, “bird”]
   animals.each { |x|
     puts(x)
   }
Rubyの文法
                      ループ
each

   animals = [“cat”, “dog”, “bird”]
   animals.each { |x|
     puts(x)
   }
Rubyの文法
                      ループ
each

   animals = [“cat”, “dog”, “bird”]
   animals.each { |x|
     puts(x)
   }

   # => “cat” “dog” ”bird”
Rubyの文法
  ループ
Rubyの文法
        ループ
map
Rubyの文法
                         ループ
map

      animals = [“cat”, “dog”, “bird”]
      animals.map { |x|
        x.upcase
      }
Rubyの文法
                         ループ
map

      animals = [“cat”, “dog”, “bird”]
      animals.map { |x|
        x.upcase
      }
Rubyの文法
                         ループ
map

      animals = [“cat”, “dog”, “bird”]
      animals.map { |x|
        x.upcase
      }

      # => [“CAT”, “DOG”, ”BIRD”]
Rubyの文法
  メソッド
Rubyの文法
              メソッド



"Hello, World".sub("World", "Japan")
Rubyの文法
              メソッド



"Hello, World".sub("World", "Japan")
Rubyの文法
              メソッド



"Hello, World".sub("World", "Japan")

   レシーバ
Rubyの文法
              メソッド



"Hello, World".sub("World", "Japan")

   レシーバ
Rubyの文法
              メソッド



"Hello, World".sub("World", "Japan")

   レシーバ      メソッド
Rubyの文法
              メソッド



"Hello, World".sub("World", "Japan")

   レシーバ      メソッド
Rubyの文法
              メソッド



"Hello, World".sub("World", "Japan")

   レシーバ      メソッド         引数
Rubyの文法
メソッドチェーン
Rubyの文法
                メソッドチェーン



"Hello, World".sub("World", "Japan").downcase.split(" ")
Rubyの文法
                    メソッドチェーン



    "Hello, World".sub("World", "Japan").downcase.split(" ")


"Hello, World".sub("World", "Japan").downcase.split(",").map{|x|
                         x.reverse}
Rubyの文法
 メソッドの定義
Rubyの文法
            メソッドの定義


def hello_world
 puts(“Hello,World!”)
end
Rubyの文法
            メソッドの定義


def hello_world
 puts(“Hello,World!”)
end

hello_world
# => Hello,World!
Rubyの文法
            メソッドの定義

                    メソッド名


def hello_world
 puts(“Hello,World!”)
end

hello_world
# => Hello,World!
Rubyの文法
            メソッドの定義

                    メソッド名


def hello_world
 puts(“Hello,World!”)
end
              メソッド名


hello_world
# => Hello,World!
Rubyの文法
 メソッドの定義
Rubyの文法
            メソッドの定義


def hello_world(name)
 puts(“Hello,World!”).sub(“World”, name)
end
Rubyの文法
            メソッドの定義


def hello_world(name)
 puts(“Hello,World!”).sub(“World”, name)
end

hello_world(“Japan”)
# => Hello,Japan!
Rubyの文法
            メソッドの定義

                        引数


def hello_world(name)
 puts(“Hello,World!”).sub(“World”, name)
end

hello_world(“Japan”)
# => Hello,Japan!
Rubyの文法
            メソッドの定義

                        引数


def hello_world(name)
 puts(“Hello,World!”).sub(“World”, name)
end
                       引数


hello_world(“Japan”)
# => Hello,Japan!
Rubyの文法
 メソッドの定義
Rubyの文法
            メソッドの定義


def hello_world(name = “USA”)
 puts(“Hello,World!”).sub(“World”, name)
end
Rubyの文法
            メソッドの定義


def hello_world(name = “USA”)
 puts(“Hello,World!”).sub(“World”, name)
end

hello_world
# => Hello,USA!
Rubyの文法
            メソッドの定義

                                デフォルト引数


def hello_world(name = “USA”)
 puts(“Hello,World!”).sub(“World”, name)
end

hello_world
# => Hello,USA!
Rubyの文法
            メソッドの定義

                                デフォルト引数


def hello_world(name = “USA”)
 puts(“Hello,World!”).sub(“World”, name)
end
Rubyの文法
            メソッドの定義

                                デフォルト引数


def hello_world(name = “USA”)
 puts(“Hello,World!”).sub(“World”, name)
end

hello_world(“UK”)
# => Hello,UK!
Rubyの文法
            メソッドの定義

                                デフォルト引数


def hello_world(name = “USA”)
 puts(“Hello,World!”).sub(“World”, name)
end
                    引数


hello_world(“UK”)
# => Hello,UK!
Rubyの文法
 メソッドの定義
Rubyの文法
            メソッドの定義

def hello_world
 puts(“Hello,World!”)
 1+3
end
Rubyの文法
            メソッドの定義

def hello_world
 puts(“Hello,World!”)
 1+3
end

puts(hello_world)
# => 4
Rubyの文法
            メソッドの定義

def hello_world
 puts(“Hello,World!”)
 1+3 最後の結果が戻り値になる
end

puts(hello_world)
# => 4
Rubyの文法
            メソッドの定義

def hello_world
 puts(“Hello,World!”)
 1+3 最後の結果が戻り値になる
end

puts(hello_world)
# => 4
           戻り値
次回予告


• Railsアプリケーションの書き方
• Twitterもどきを作ってみる
ご清聴ありがとうございました

More Related Content

Similar to Rails基礎講座 part.1

Ruby 同好会宣言
Ruby 同好会宣言Ruby 同好会宣言
Ruby 同好会宣言Yuya Takeyama
 
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜Kenta USAMI
 
そんな装備で大丈夫か?
そんな装備で大丈夫か?そんな装備で大丈夫か?
そんな装備で大丈夫か?2celeb
 
初級者向けレッスン 52回 ─── 文字列
初級者向けレッスン 52回 ─── 文字列初級者向けレッスン 52回 ─── 文字列
初級者向けレッスン 52回 ─── 文字列higaki
 
Ruby初級者向けレッスン 47回 ─── 文字列
Ruby初級者向けレッスン 47回 ─── 文字列Ruby初級者向けレッスン 47回 ─── 文字列
Ruby初級者向けレッスン 47回 ─── 文字列higaki
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発emasaka
 
はじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリはじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリMasahiro Tomita
 
Ruby でつくる型付き Ruby
Ruby でつくる型付き RubyRuby でつくる型付き Ruby
Ruby でつくる型付き Rubymametter
 
phperを魅了するrubyの魅力(1)
phperを魅了するrubyの魅力(1)phperを魅了するrubyの魅力(1)
phperを魅了するrubyの魅力(1)tj-yoshino
 
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会Makoto SAKAI
 
Ruby の文字列について
Ruby の文字列についてRuby の文字列について
Ruby の文字列についてTomoya Kawanishi
 
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1耕平 谷口
 
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようCookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようKoichi Sasada
 
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Koji SHIMADA
 
Ruby の制御構造とリテラルについて
Ruby の制御構造とリテラルについてRuby の制御構造とリテラルについて
Ruby の制御構造とリテラルについてTomoya Kawanishi
 
第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」Hiromu Shioya
 
Vim scriptとJavaとHaskell
Vim scriptとJavaとHaskellVim scriptとJavaとHaskell
Vim scriptとJavaとHaskellaiya000
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門Yasuko Ohba
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRubyemasaka
 
Ruby&Rails入門講座-1
Ruby&Rails入門講座-1Ruby&Rails入門講座-1
Ruby&Rails入門講座-1Koji SHIMADA
 

Similar to Rails基礎講座 part.1 (20)

Ruby 同好会宣言
Ruby 同好会宣言Ruby 同好会宣言
Ruby 同好会宣言
 
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
 
そんな装備で大丈夫か?
そんな装備で大丈夫か?そんな装備で大丈夫か?
そんな装備で大丈夫か?
 
初級者向けレッスン 52回 ─── 文字列
初級者向けレッスン 52回 ─── 文字列初級者向けレッスン 52回 ─── 文字列
初級者向けレッスン 52回 ─── 文字列
 
Ruby初級者向けレッスン 47回 ─── 文字列
Ruby初級者向けレッスン 47回 ─── 文字列Ruby初級者向けレッスン 47回 ─── 文字列
Ruby初級者向けレッスン 47回 ─── 文字列
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
 
はじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリはじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリ
 
Ruby でつくる型付き Ruby
Ruby でつくる型付き RubyRuby でつくる型付き Ruby
Ruby でつくる型付き Ruby
 
phperを魅了するrubyの魅力(1)
phperを魅了するrubyの魅力(1)phperを魅了するrubyの魅力(1)
phperを魅了するrubyの魅力(1)
 
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
 
Ruby の文字列について
Ruby の文字列についてRuby の文字列について
Ruby の文字列について
 
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
 
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようCookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
 
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4
 
Ruby の制御構造とリテラルについて
Ruby の制御構造とリテラルについてRuby の制御構造とリテラルについて
Ruby の制御構造とリテラルについて
 
第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」
 
Vim scriptとJavaとHaskell
Vim scriptとJavaとHaskellVim scriptとJavaとHaskell
Vim scriptとJavaとHaskell
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
Ruby&Rails入門講座-1
Ruby&Rails入門講座-1Ruby&Rails入門講座-1
Ruby&Rails入門講座-1
 

Recently uploaded

【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slidessusere0a682
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」inspirehighstaff03
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」inspirehighstaff03
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」inspirehighstaff03
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdfoganekyokoi
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」inspirehighstaff03
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfyukisuga3
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドKen Fukui
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドKen Fukui
 
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドKen Fukui
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」inspirehighstaff03
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」inspirehighstaff03
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」inspirehighstaff03
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」inspirehighstaff03
 
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドリアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドKen Fukui
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」inspirehighstaff03
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」inspirehighstaff03
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」inspirehighstaff03
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドKen Fukui
 

Recently uploaded (20)

【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdf
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
 
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
 
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドリアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
 

Rails基礎講座 part.1

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n