SlideShare a Scribd company logo
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 (20)

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 でつくる型付き Ruby
mametter
 
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 Vol4
Koji 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とHaskell
aiya000
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
 
Ruby&Rails入門講座-1
Ruby&Rails入門講座-1Ruby&Rails入門講座-1
Ruby&Rails入門講座-1
Koji SHIMADA
 
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 でつくる型付き Ruby
mametter
 
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 Vol4
Koji 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とHaskell
aiya000
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
 
Ruby&Rails入門講座-1
Ruby&Rails入門講座-1Ruby&Rails入門講座-1
Ruby&Rails入門講座-1
Koji SHIMADA
 

Rails基礎講座 part.1

Editor's Notes