Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rails基礎講座 part.1

1,751 views

Published on

Rails基礎講座第一回 Rubyの基礎

Published in: Education
  • Be the first to comment

Rails基礎講座 part.1

  1. 1. Rails基礎講座 2012/03/14∼
  2. 2. 自己紹介• フリーエンジニア• Rails歴4年くらい• お仕事募集中• twitter:@nysalor
  3. 3. Ruby?
  4. 4. Ruby?• オブジェクト指向スクリプト言語• 1993年にまつもとゆきひろさんが開発
  5. 5. Ruby?Matz(まつもとゆきひろ)
  6. 6. Ruby?• LISPやPerlにインスパイアされている• 現在の最新版は1.9.3• MatzRuby(CRuby)以外に色んな実装があ る(JRubyなど)
  7. 7. オブジェクト指向?
  8. 8. オブジェクト指向? ぐぐれ
  9. 9. Rails?
  10. 10. Rails?• Rubyで書かれたWebアプリケーション フレームワーク• 2004年にDavid Heinemeier Hanssonさん が開発• MVCアーキテクチャ
  11. 11. Rails?DHH(David Heinemeier Hansson)
  12. 12. MVC?
  13. 13. MVC?ぐぐれ
  14. 14. MVC?
  15. 15. MVC?
  16. 16. MVC?Model
  17. 17. MVC? ModelView
  18. 18. MVC? ModelView Controller
  19. 19. MVC? ModelView Controller User
  20. 20. MVC? ModelView Controller User
  21. 21. MVC? ModelView Controller User
  22. 22. MVC? ModelView Controller User
  23. 23. MVC? ModelView Controller User
  24. 24. MVC? ModelView Controller User
  25. 25. MVC? ModelView Controller User
  26. 26. Railsの特長• ルールに沿って書いていけばWebアプ リケーションができる• =レールに乗る(on Rails)
  27. 27. Railsの特長
  28. 28. Rails基礎講座• Rubyの基本的な知識が必要•
  29. 29. Rails基礎講座• Rubyの基本的な知識が必要•
  30. 30. • Rubyの基本的な知識が必要•
  31. 31. Ruby基礎講座• Rubyの基本的な知識が必要• 【本題】Ruby基礎講座
  32. 32. インストール
  33. 33. インストール
  34. 34. インストール• Mac• Windows• Linux/*BSD• Solaris/PC98x1/X68000etc...
  35. 35. Mac• 最初から入っている\(^o^)/••
  36. 36. Mac• 最初から入っている\(^o^)/古い!••
  37. 37. Mac• 最初から入っている\(^o^)/古い!• Homebrew•
  38. 38. Mac• 最初から入っている\(^o^)/古い!• Homebrew• brew install ruby
  39. 39. 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
  40. 40. Windows• One Click Installer•••
  41. 41. Windows• One Click Installer• http://rubyinstaller.org/downloads/••
  42. 42. Windows• One Click Installer• http://rubyinstaller.org/downloads/• sqlite dll•
  43. 43. Windows• One Click Installer• http://rubyinstaller.org/downloads/• sqlite dll• http://www.sqlite.org/download.html
  44. 44. One Click Installer• One Click Installer• Ruby1.9.3-p125• c:¥Ruby• Add Ruby executables to your PATH
  45. 45. sqlite• sqlite3.dll• sqlite-dll-win32-x86-307100.zip• http://www.sqlite.org/download.html• c:¥Ruby¥binへコピー
  46. 46. Linux
  47. 47. Linuxぐぐれ
  48. 48. Linux
  49. 49. Linux• apt-get install ruby1.9 sqlite3
  50. 50. Rubyの使い方
  51. 51. Rubyの使い方
  52. 52. Rubyの使い方テキストファイルにプログラムを書いて実行
  53. 53. Rubyの使い方テキストファイルにプログラムを書いて実行hello_world.rb
  54. 54. Rubyの使い方テキストファイルにプログラムを書いて実行hello_world.rb puts(“Hello,World!”)
  55. 55. Rubyの使い方テキストファイルにプログラムを書いて実行hello_world.rb puts(“Hello,World!”)% ruby hello_world.rb
  56. 56. Rubyの使い方テキストファイルにプログラムを書いて実行hello_world.rb puts(“Hello,World!”)% ruby hello_world.rb Hello,World!
  57. 57. Rubyの使い方
  58. 58. Rubyの使い方コマンドラインにプログラムを書く
  59. 59. Rubyの使い方 コマンドラインにプログラムを書く% ruby -e puts("Hello,World!")
  60. 60. Rubyの使い方 コマンドラインにプログラムを書く% ruby -e puts("Hello,World!") Hello,World!
  61. 61. Rubyの使い方
  62. 62. Rubyの使い方irb(Interactive Ruby shell)
  63. 63. Rubyの使い方 irb(Interactive Ruby shell)% irb
  64. 64. Rubyの使い方 irb(Interactive Ruby shell)% irb > puts(“Hello,World!”)
  65. 65. Rubyの使い方 irb(Interactive Ruby shell)% irb > puts(“Hello,World!”) Hello,World! => nil >
  66. 66. Rubyの使い方
  67. 67. Rubyの使い方テキストファイルにプログラムを書いて実行
  68. 68. Rubyの使い方テキストファイルにプログラムを書いて実行 必要なもの
  69. 69. Rubyの使い方テキストファイルにプログラムを書いて実行 必要なもの• エディタ• ターミナル
  70. 70. エディタUTF-8が編集できれば何でもよい
  71. 71. エディタUTF-8が編集できれば何でもよい Mac/Linux
  72. 72. エディタ UTF-8が編集できれば何でもよい Mac/Linux• vim• emacs• textmate• cot editor
  73. 73. エディタUTF-8が編集できれば何でもよい
  74. 74. エディタUTF-8が編集できれば何でもよい Windows
  75. 75. エディタ UTF-8が編集できれば何でもよい Windows• サクラエディタ• 秀丸• notepad++
  76. 76. ターミナル
  77. 77. ターミナル• コマンドプロンプト• ターミナル• kterm
  78. 78. Rubyの文法
  79. 79. Rubyの文法
  80. 80. Rubyの文法 基本
  81. 81. Rubyの文法 基本• 一行ずつ実行• 行末の;は要らない• 先頭に#を書くとコメント
  82. 82. Rubyの文法 変数ローカル変数
  83. 83. Rubyの文法 変数ローカル変数 foo = 10
  84. 84. Rubyの文法 変数ローカル変数 foo = 10 foo = “bar”
  85. 85. Rubyの文法 変数ローカル変数 foo = 10 foo = “bar”定義は要らない
  86. 86. Rubyの文法 変数ローカル変数 foo = 10 foo = “bar”定義は要らない代入されたデータの型になる
  87. 87. Rubyの文法 変数ローカル変数
  88. 88. Rubyの文法 変数ローカル変数条件分岐・ループの外には出て行かない
  89. 89. Rubyの文法 変数ローカル変数条件分岐・ループの外には出て行かないfoo = 10if foo > 9 bar = fooendputs(bar)
  90. 90. Rubyの文法 変数ローカル変数条件分岐・ループの外には出て行かないfoo = 10if foo > 9 bar = fooend Error!puts(bar)
  91. 91. Rubyの文法 変数インスタンス変数
  92. 92. Rubyの文法 変数インスタンス変数 @foo = 10
  93. 93. Rubyの文法 変数インスタンス変数 @foo = 10 @を付けるとインスタンス内でずっと有効
  94. 94. Rubyの文法 変数インスタンス変数
  95. 95. Rubyの文法 変数インスタンス変数 foo = 10 if foo > 9 @bar = foo end puts(@bar) => 10
  96. 96. Rubyの文法 変数配列
  97. 97. Rubyの文法 変数配列 array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10]
  98. 98. Rubyの文法 変数配列 array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  99. 99. Rubyの文法 変数配列 array[0] array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  100. 100. Rubyの文法 変数配列 array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  101. 101. Rubyの文法 変数配列 array[1] array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  102. 102. Rubyの文法 変数配列 array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  103. 103. Rubyの文法 変数配列 array[2] array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  104. 104. Rubyの文法 変数配列 array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  105. 105. Rubyの文法 変数配列 array[3] array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  106. 106. Rubyの文法 変数配列 array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  107. 107. Rubyの文法 変数配列 array[4] array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  108. 108. Rubyの文法 変数配列 array = [1,2,3,4,5] string_array = [“alpha”, “bravo”, “charlie”] @array = [7,8,9,10] puts(array[1]) # => 2
  109. 109. Rubyの文法 変数ハッシュ(連想配列)
  110. 110. Rubyの文法 変数ハッシュ(連想配列) hash = { “alpha” => “able”, “bravo” => “baker” }
  111. 111. Rubyの文法 変数ハッシュ(連想配列) hash = { “alpha” => “able”, “bravo” => “baker” } puts(hash[”bravo”]) # => “baker”
  112. 112. Rubyの文法 条件分岐
  113. 113. Rubyの文法 条件分岐if
  114. 114. Rubyの文法 条件分岐if foo = 10 if foo > 9 puts(“foo is larger than 9!”) end
  115. 115. Rubyの文法 条件分岐
  116. 116. Rubyの文法 条件分岐else
  117. 117. Rubyの文法 条件分岐else foo = 10 if foo > 9 puts(“foo is larger than 9!”) else puts(“something wrong...”) end
  118. 118. Rubyの文法 条件分岐
  119. 119. Rubyの文法 条件分岐unless
  120. 120. Rubyの文法 条件分岐unless foo = 10 unless foo > 11 puts(“foo is smaller than 11!”) end
  121. 121. Rubyの文法 ループ
  122. 122. Rubyの文法 ループeach
  123. 123. Rubyの文法 ループeach animals = [“cat”, “dog”, “bird”] animals.each do |x| puts(x) end
  124. 124. Rubyの文法 ループeach animals = [“cat”, “dog”, “bird”] animals.each do |x| puts(x) end
  125. 125. Rubyの文法 ループeach animals = [“cat”, “dog”, “bird”] animals.each do |x| puts(x) ブロック変数 end
  126. 126. Rubyの文法 ループeach animals = [“cat”, “dog”, “bird”] animals.each do |x| puts(x) ブロック変数 end # => “cat” “dog” ”bird”
  127. 127. Rubyの文法 ループeach
  128. 128. Rubyの文法 ループeach animals = [“cat”, “dog”, “bird”] animals.each { |x| puts(x) }
  129. 129. Rubyの文法 ループeach animals = [“cat”, “dog”, “bird”] animals.each { |x| puts(x) }
  130. 130. Rubyの文法 ループeach animals = [“cat”, “dog”, “bird”] animals.each { |x| puts(x) } # => “cat” “dog” ”bird”
  131. 131. Rubyの文法 ループ
  132. 132. Rubyの文法 ループmap
  133. 133. Rubyの文法 ループmap animals = [“cat”, “dog”, “bird”] animals.map { |x| x.upcase }
  134. 134. Rubyの文法 ループmap animals = [“cat”, “dog”, “bird”] animals.map { |x| x.upcase }
  135. 135. Rubyの文法 ループmap animals = [“cat”, “dog”, “bird”] animals.map { |x| x.upcase } # => [“CAT”, “DOG”, ”BIRD”]
  136. 136. Rubyの文法 メソッド
  137. 137. Rubyの文法 メソッド"Hello, World".sub("World", "Japan")
  138. 138. Rubyの文法 メソッド"Hello, World".sub("World", "Japan")
  139. 139. Rubyの文法 メソッド"Hello, World".sub("World", "Japan") レシーバ
  140. 140. Rubyの文法 メソッド"Hello, World".sub("World", "Japan") レシーバ
  141. 141. Rubyの文法 メソッド"Hello, World".sub("World", "Japan") レシーバ メソッド
  142. 142. Rubyの文法 メソッド"Hello, World".sub("World", "Japan") レシーバ メソッド
  143. 143. Rubyの文法 メソッド"Hello, World".sub("World", "Japan") レシーバ メソッド 引数
  144. 144. Rubyの文法メソッドチェーン
  145. 145. Rubyの文法 メソッドチェーン"Hello, World".sub("World", "Japan").downcase.split(" ")
  146. 146. Rubyの文法 メソッドチェーン "Hello, World".sub("World", "Japan").downcase.split(" ")"Hello, World".sub("World", "Japan").downcase.split(",").map{|x| x.reverse}
  147. 147. Rubyの文法 メソッドの定義
  148. 148. Rubyの文法 メソッドの定義def hello_world puts(“Hello,World!”)end
  149. 149. Rubyの文法 メソッドの定義def hello_world puts(“Hello,World!”)endhello_world# => Hello,World!
  150. 150. Rubyの文法 メソッドの定義 メソッド名def hello_world puts(“Hello,World!”)endhello_world# => Hello,World!
  151. 151. Rubyの文法 メソッドの定義 メソッド名def hello_world puts(“Hello,World!”)end メソッド名hello_world# => Hello,World!
  152. 152. Rubyの文法 メソッドの定義
  153. 153. Rubyの文法 メソッドの定義def hello_world(name) puts(“Hello,World!”).sub(“World”, name)end
  154. 154. Rubyの文法 メソッドの定義def hello_world(name) puts(“Hello,World!”).sub(“World”, name)endhello_world(“Japan”)# => Hello,Japan!
  155. 155. Rubyの文法 メソッドの定義 引数def hello_world(name) puts(“Hello,World!”).sub(“World”, name)endhello_world(“Japan”)# => Hello,Japan!
  156. 156. Rubyの文法 メソッドの定義 引数def hello_world(name) puts(“Hello,World!”).sub(“World”, name)end 引数hello_world(“Japan”)# => Hello,Japan!
  157. 157. Rubyの文法 メソッドの定義
  158. 158. Rubyの文法 メソッドの定義def hello_world(name = “USA”) puts(“Hello,World!”).sub(“World”, name)end
  159. 159. Rubyの文法 メソッドの定義def hello_world(name = “USA”) puts(“Hello,World!”).sub(“World”, name)endhello_world# => Hello,USA!
  160. 160. Rubyの文法 メソッドの定義 デフォルト引数def hello_world(name = “USA”) puts(“Hello,World!”).sub(“World”, name)endhello_world# => Hello,USA!
  161. 161. Rubyの文法 メソッドの定義 デフォルト引数def hello_world(name = “USA”) puts(“Hello,World!”).sub(“World”, name)end
  162. 162. Rubyの文法 メソッドの定義 デフォルト引数def hello_world(name = “USA”) puts(“Hello,World!”).sub(“World”, name)endhello_world(“UK”)# => Hello,UK!
  163. 163. Rubyの文法 メソッドの定義 デフォルト引数def hello_world(name = “USA”) puts(“Hello,World!”).sub(“World”, name)end 引数hello_world(“UK”)# => Hello,UK!
  164. 164. Rubyの文法 メソッドの定義
  165. 165. Rubyの文法 メソッドの定義def hello_world puts(“Hello,World!”) 1+3end
  166. 166. Rubyの文法 メソッドの定義def hello_world puts(“Hello,World!”) 1+3endputs(hello_world)# => 4
  167. 167. Rubyの文法 メソッドの定義def hello_world puts(“Hello,World!”) 1+3 最後の結果が戻り値になるendputs(hello_world)# => 4
  168. 168. Rubyの文法 メソッドの定義def hello_world puts(“Hello,World!”) 1+3 最後の結果が戻り値になるendputs(hello_world)# => 4 戻り値
  169. 169. 次回予告• Railsアプリケーションの書き方• Twitterもどきを作ってみる
  170. 170. ご清聴ありがとうございました

×