Your SlideShare is downloading. ×
0
Rails基礎講座  2012/03/21
前回のあらすじ• Ruby on Rails• Rubyをインストールしてみる• Rubyの基礎
おさらい• Railsとは?• MVCアーキテクチャ• 変数・条件分岐・ループ• レシーバとメソッドとメソッド定義
MVC?
MVC?Model
MVC?       ModelView
MVC?       ModelView           Controller
MVC?       ModelView           Controller       User
MVC?       ModelView           Controller       User
MVC?       ModelView           Controller       User
MVC?       ModelView           Controller       User
MVC?       ModelView           Controller       User
MVC?       ModelView           Controller       User
MVC?       ModelView           Controller       User
Railsの特長• ルールに沿って書いていけばWebアプ リケーションができる• =レールに乗る(on Rails)
Railsの特長
インストール
インストール
インストール
インストール> gem install rails
インストール> gem install railsFetching: i18n-0.6.0.gem (100%)Fetching: multi_json-1.1.0.gem (100%)Fetching: activesupport-3.2.2...
インストール
インストール> rails -v
インストール> rails -vRails 3.2.2
何を作る?
何を作る?
何を作る? twit
何を作る?    twitマイクロブログ的なアレ
何を作る? twit
何を作る?       twit[名]1 ((略式))ばか, まぬけ.2 あざけり, 愚弄(ぐろう).
必要なもの
必要なもの• 統合開発環境• エディタ• ターミナル• ブラウザ
※画面は開発中のものです
※画面は開発中のものです         ターミナル
※画面は開発中のものです         ターミナル
※画面は開発中のものですエディタ         ターミナル
※画面は開発中のものですエディタ         ターミナル
※画面は開発中のものですエディタ              ターミナル       ブラウザ
完成品
完成品https://github.com/nysalor/twit/commits/master
完成品https://github.com/nysalor/twit/commits/master
完成品https://github.com/nysalor/twit/commits/master     下から順番
完成品https://github.com/nysalor/twit/commits/master     下から順番
開発開始!
開発開始!> rails new twit -T
開発開始!> rails new twit -Tcreatecreate README.rdoc...run bundle install...Your bundle is complete! Use `bundleshow [gemname]...
ディレクトリ
ディレクトリ Model
ディレクトリ       ModelView
ディレクトリ       ModelView           Controller
ディレクトリ       Model               ControllerView
ディレクトリ             ModelController  View
ディレクトリ  ModelController  View
ディレクトリ  ModelController  View
ディレクトリ          > cd twit  ModelController  View
ディレクトリ  ModelController  View
ディレクトリ             twit/  ModelController  View
ディレクトリ             twit/  Model              app/modelsController  View
ディレクトリ             twit/  Model               app/modelsController           app/controllers  View
ディレクトリ             twit/  Model               app/modelsController           app/controllers  View                 app/views
ディレクトリ             twit/                      app/modelsController           app/controllers  View                 app/views
ディレクトリ       twit/                app/models               app/controllersView             app/views
ディレクトリ twit/          app/models         app/controllers           app/views
ディレクトリ twit/          app/models         app/controllers           app/views
ディレクトリ        twit/config            app/models                app/controllers                  app/views
ディレクトリ        twit/config            app/models db             app/controllers                  app/views
ディレクトリ         twit/config             app/models db              app/controllerspublic             app/views
ディレクトリ twit/
ディレクトリ      twit/以後はずっとこのディレクトリ
サーバ起動
サーバ起動> cd twit> rails server
サーバ起動> cd twit> rails serverhttp://localhost:3000
サーバ起動http://localhost:3000
サーバ起動
サーバ起動
設計
設計Model
設計
設計User
設計UserTweet
設計User        nameTweet
設計User        nameTweet         body        user_id
設計User       name        body       user_id
設計User       name
scaffold
scaffold> rails generate scaffold User name:string
scaffold> rails generate scaffold User name:stringinvoke active_recordcreate db/migrate/ 20120320181856_create_users.rbcre...
scaffold  ModelController  View
scaffold  Model           app/models/user.rbController  View
scaffold  Model           app/models/user.rb                   app/controllers/Controller        users_controller.rb  View
scaffold  Model           app/models/user.rb                   app/controllers/Controller        users_controller.rb      ...
scaffold
scaffold         db/migrate/20120320181856_create_users.rb
scaffold            db/migrate/   20120320181856_create_users.rbclass CreateUsers < ActiveRecord::Migration  def change   ...
scaffold            db/migrate/   20120320181856_create_users.rbclass CreateUsers < ActiveRecord::Migration  def change   ...
設計User        nameTweet         body        user_id
設計        nameTweet         body        user_id
設計Tweet         body        user_id
scaffold
scaffold
scaffold> rails generate model Tweet body:stringuser_id:integer
scaffold> rails generate model Tweet body:stringuser_id:integerinvoke active_recordcreate db/migrate/ 20120320213424_creat...
model generatorModel
model generatorModel   app/models/tweet.rb
model generator
model generator          db/migrate/20120320213424_create_tweets.rb
model generator             db/migrate/   20120320213424_create_tweets.rbclass CreateTweets < ActiveRecord::Migration  def...
model generator             db/migrate/   20120320213424_create_tweets.rbclass CreateTweets < ActiveRecord::Migration  def...
migrate
migrate> rake db:migrate
migrate> rake db:migrate== CreateUsers: migrating ================-- create_table(:users)   -> 0.0016s== CreateUsers: migr...
migrate> rake db:migrate                        「手順書」からDBを作成== CreateUsers: migrating ================-- create_table(:use...
動かしてみる
動かしてみるhttp://localhost:3000/users/
動かしてみるhttp://localhost:3000/users/
動かしてみるhttp://localhost:3000/users/
動かしてみるhttp://localhost:3000/users/
設計User        nameTweet         body        user_id
設計User       name        body       user_id
設計User       name
設計User
設計User
設計        UserTweet
設計        UserTweet
設計        UserTweet   Tweet
設計        UserTweet   Tweet
設計        UserTweet   Tweet   Tweet
設計        UserTweet   Tweet   Tweet
関連付け
関連付けapp/models/user.rb
関連付け            app/models/user.rbclass User < ActiveRecord::Baseend
関連付けapp/models/user.rb
関連付け            app/models/user.rbclass User < ActiveRecord::Base  has_many :tweetsend
関連付け            app/models/user.rbclass User < ActiveRecord::Base  has_many :tweetsend                      追加
関連付け
関連付けapp/models/tweet.rb
関連付け           app/models/tweet.rbclass Tweet < ActiveRecord::Baseend
関連付けapp/models/tweet.rb
関連付け           app/models/tweet.rbclass Tweet < ActiveRecord::Base  belongs_to :userend
関連付け           app/models/tweet.rbclass Tweet < ActiveRecord::Base  belongs_to :userend                      追加
つぶやきを表示
つぶやきを表示http://localhost:3000/users/1
つぶやきを表示http://localhost:3000/users/1
つぶやきを表示http://localhost:3000/users/1          この辺につぶやき追加
つぶやきを表示
つぶやきを表示  Controller
つぶやきを表示
つぶやきを表示app/controllers/users_controller.rb
つぶやきを表示   app/controllers/users_controller.rb  # GET /users/1  # GET /users/1.json  def show    @user = User.find(params[:...
つぶやきを表示          app/controllers/users_controller.rb        # GET /users/1        # GET /users/1.json        def show     ...
つぶやきを表示   app/controllers/users_controller.rb  # GET /users/1  # GET /users/1.json  def show    @user = User.find(params[:...
つぶやきを表示app/controllers/users_controller.rb
つぶやきを表示   app/controllers/users_controller.rb  # GET /users/1  # GET /users/1.json  def show    @user = User.find(params[:...
つぶやきを表示   app/controllers/users_controller.rb  # GET /users/1  # GET /users/1.json  def show    @user = User.find(params[:...
つぶやきを表示   app/controllers/users_controller.rb  # GET /users/1  # GET /users/1.json        @user.tweetsで@userのtweetを取得  def...
つぶやきを表示
つぶやきを表示  View
つぶやきを表示
つぶやきを表示app/views/users/show.html.erb
つぶやきを表示      app/views/users/show.html.erb<p id="notice"><%= notice %></p><p>  <b>Name:</b>  <%= @user.name %></p>
つぶやきを表示app/views/users/show.html.erb
つぶやきを表示      app/views/users/show.html.erb<p>  <b>Name:</b>  <%= @user.name %></p><p>  <b><%= @user.name %>さんのつぶやき</b>  <u...
つぶやきを表示      app/views/users/show.html.erb<p>  <b>Name:</b>  <%= @user.name %></p><p>  <b><%= @user.name %>さんのつぶやき</b>  <u...
つぶやきを表示
つぶやきを表示http://localhost:3000/users/1
つぶやきを表示http://localhost:3000/users/1
つぶやく
つぶやくController
つぶやく
つぶやくapp/controllers/users_controller.rb
つぶやく   app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      forma...
つぶやく   app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      forma...
つぶやく   app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      forma...
つぶやくapp/controllers/users_controller.rb
つぶやく    app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      form...
つぶやく    app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      form...
つぶやく    app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      form...
つぶやく
つぶやく View
つぶやく
つぶやくapp/views/users/show.html.erb
つぶやく      app/views/users/show.html.erb<%= link_to Edit, edit_user_path(@user) %> |<%= link_to Back, users_path %>
つぶやくapp/views/users/show.html.erb
つぶやく      app/views/users/show.html.erb<p>  <%= form_tag user_tweet_path do %>    今何してる?:<%= text_field_tag :body %>    <%...
つぶやく      app/views/users/show.html.erb<p>  <%= form_tag user_tweet_path do %>    今何してる?:<%= text_field_tag :body %>    <%...
つぶやく
つぶやくconfig/routes.rb
つぶやく              config/routes.rbTwit::Application.routes.draw do  resources :users
つぶやくconfig/routes.rb
つぶやく                     config/routes.rbTwit::Application.routes.draw do  match /user/:id/tweet => users#tweet, :as => :us...
つぶやく                     config/routes.rbTwit::Application.routes.draw do  match /user/:id/tweet => users#tweet, :as => :us...
つぶやく                        config/routes.rb/user/1/tweetでusers#tweetが呼ばれるようになる   Twit::Application.routes.draw do     matc...
つぶやいてみる
つぶやいてみるhttp://localhost:3000/users/1
つぶやいてみるhttp://localhost:3000/users/1
つぶやいてみるhttp://localhost:3000/users/1
トップページ
トップページhttp://localhost:3000/
トップページhttp://localhost:3000/
トップページhttp://localhost:3000/
トップページhttp://localhost:3000/
トップページ
トップページ config/routes.rb
トップページ                     config/routes.rbTwit::Application.routes.draw do  match /user/:id/tweet => users#tweet, :as => :...
トップページ config/routes.rb
トップページ                     config/routes.rbTwit::Application.routes.draw do  match /user/:id/tweet => users#tweet, :as => :...
トップページ                     config/routes.rbTwit::Application.routes.draw do  match /user/:id/tweet => users#tweet, :as => :...
トップページ
トップページhttp://localhost:3000/
トップページhttp://localhost:3000/
トップページhttp://localhost:3000/???
トップページ
トップページ public/index.html
トップページ      削除 public/index.html
トップページ
トップページhttp://localhost:3000/
トップページhttp://localhost:3000/
次回予告• トップページにタイムライン表示• つぶやきを新しい順に並べる• デザインをかっこよく• Ajaxで動きのあるページに• 多分時間が足りません
ご清聴ありがとうございました
Rails基礎講座 part.2
Upcoming SlideShare
Loading in...5
×

Rails基礎講座 part.2

657

Published on

Rails基礎講座第二回 Twitterっぽいものを作ってみよう

Published in: Education, Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
657
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "Rails基礎講座 part.2"

    1. 1. Rails基礎講座 2012/03/21
    2. 2. 前回のあらすじ• Ruby on Rails• Rubyをインストールしてみる• Rubyの基礎
    3. 3. おさらい• Railsとは?• MVCアーキテクチャ• 変数・条件分岐・ループ• レシーバとメソッドとメソッド定義
    4. 4. MVC?
    5. 5. MVC?Model
    6. 6. MVC? ModelView
    7. 7. MVC? ModelView Controller
    8. 8. MVC? ModelView Controller User
    9. 9. MVC? ModelView Controller User
    10. 10. MVC? ModelView Controller User
    11. 11. MVC? ModelView Controller User
    12. 12. MVC? ModelView Controller User
    13. 13. MVC? ModelView Controller User
    14. 14. MVC? ModelView Controller User
    15. 15. Railsの特長• ルールに沿って書いていけばWebアプ リケーションができる• =レールに乗る(on Rails)
    16. 16. Railsの特長
    17. 17. インストール
    18. 18. インストール
    19. 19. インストール
    20. 20. インストール> gem install rails
    21. 21. インストール> gem install railsFetching: i18n-0.6.0.gem (100%)Fetching: multi_json-1.1.0.gem (100%)Fetching: activesupport-3.2.2.gem (100%)...Successfully installed bundler-1.1.1Successfully installed rails-3.2.230 gems installed
    22. 22. インストール
    23. 23. インストール> rails -v
    24. 24. インストール> rails -vRails 3.2.2
    25. 25. 何を作る?
    26. 26. 何を作る?
    27. 27. 何を作る? twit
    28. 28. 何を作る? twitマイクロブログ的なアレ
    29. 29. 何を作る? twit
    30. 30. 何を作る? twit[名]1 ((略式))ばか, まぬけ.2 あざけり, 愚弄(ぐろう).
    31. 31. 必要なもの
    32. 32. 必要なもの• 統合開発環境• エディタ• ターミナル• ブラウザ
    33. 33. ※画面は開発中のものです
    34. 34. ※画面は開発中のものです ターミナル
    35. 35. ※画面は開発中のものです ターミナル
    36. 36. ※画面は開発中のものですエディタ ターミナル
    37. 37. ※画面は開発中のものですエディタ ターミナル
    38. 38. ※画面は開発中のものですエディタ ターミナル ブラウザ
    39. 39. 完成品
    40. 40. 完成品https://github.com/nysalor/twit/commits/master
    41. 41. 完成品https://github.com/nysalor/twit/commits/master
    42. 42. 完成品https://github.com/nysalor/twit/commits/master 下から順番
    43. 43. 完成品https://github.com/nysalor/twit/commits/master 下から順番
    44. 44. 開発開始!
    45. 45. 開発開始!> rails new twit -T
    46. 46. 開発開始!> rails new twit -Tcreatecreate README.rdoc...run bundle install...Your bundle is complete! Use `bundleshow [gemname]` to see where abundled gem is installed.
    47. 47. ディレクトリ
    48. 48. ディレクトリ Model
    49. 49. ディレクトリ ModelView
    50. 50. ディレクトリ ModelView Controller
    51. 51. ディレクトリ Model ControllerView
    52. 52. ディレクトリ ModelController View
    53. 53. ディレクトリ ModelController View
    54. 54. ディレクトリ ModelController View
    55. 55. ディレクトリ > cd twit ModelController View
    56. 56. ディレクトリ ModelController View
    57. 57. ディレクトリ twit/ ModelController View
    58. 58. ディレクトリ twit/ Model app/modelsController View
    59. 59. ディレクトリ twit/ Model app/modelsController app/controllers View
    60. 60. ディレクトリ twit/ Model app/modelsController app/controllers View app/views
    61. 61. ディレクトリ twit/ app/modelsController app/controllers View app/views
    62. 62. ディレクトリ twit/ app/models app/controllersView app/views
    63. 63. ディレクトリ twit/ app/models app/controllers app/views
    64. 64. ディレクトリ twit/ app/models app/controllers app/views
    65. 65. ディレクトリ twit/config app/models app/controllers app/views
    66. 66. ディレクトリ twit/config app/models db app/controllers app/views
    67. 67. ディレクトリ twit/config app/models db app/controllerspublic app/views
    68. 68. ディレクトリ twit/
    69. 69. ディレクトリ twit/以後はずっとこのディレクトリ
    70. 70. サーバ起動
    71. 71. サーバ起動> cd twit> rails server
    72. 72. サーバ起動> cd twit> rails serverhttp://localhost:3000
    73. 73. サーバ起動http://localhost:3000
    74. 74. サーバ起動
    75. 75. サーバ起動
    76. 76. 設計
    77. 77. 設計Model
    78. 78. 設計
    79. 79. 設計User
    80. 80. 設計UserTweet
    81. 81. 設計User nameTweet
    82. 82. 設計User nameTweet body user_id
    83. 83. 設計User name body user_id
    84. 84. 設計User name
    85. 85. scaffold
    86. 86. scaffold> rails generate scaffold User name:string
    87. 87. scaffold> rails generate scaffold User name:stringinvoke active_recordcreate db/migrate/ 20120320181856_create_users.rbcreate app/models/user.rb...create app/assets/stylesheets/scaffolds.css.scss
    88. 88. scaffold ModelController View
    89. 89. scaffold Model app/models/user.rbController View
    90. 90. scaffold Model app/models/user.rb app/controllers/Controller users_controller.rb View
    91. 91. scaffold Model app/models/user.rb app/controllers/Controller users_controller.rb app/views/users/ View index.html.erb ...
    92. 92. scaffold
    93. 93. scaffold db/migrate/20120320181856_create_users.rb
    94. 94. scaffold db/migrate/ 20120320181856_create_users.rbclass CreateUsers < ActiveRecord::Migration  def change    create_table :users do |t|      t.string :name      t.timestamps    end  endend
    95. 95. scaffold db/migrate/ 20120320181856_create_users.rbclass CreateUsers < ActiveRecord::Migration  def change    create_table :users do |t|      t.string :name      t.timestamps DBの「手順書」    end  endend
    96. 96. 設計User nameTweet body user_id
    97. 97. 設計 nameTweet body user_id
    98. 98. 設計Tweet body user_id
    99. 99. scaffold
    100. 100. scaffold
    101. 101. scaffold> rails generate model Tweet body:stringuser_id:integer
    102. 102. scaffold> rails generate model Tweet body:stringuser_id:integerinvoke active_recordcreate db/migrate/ 20120320213424_create_tweets.rbcreate app/models/tweet.rb
    103. 103. model generatorModel
    104. 104. model generatorModel app/models/tweet.rb
    105. 105. model generator
    106. 106. model generator db/migrate/20120320213424_create_tweets.rb
    107. 107. model generator db/migrate/ 20120320213424_create_tweets.rbclass CreateTweets < ActiveRecord::Migration  def change    create_table :tweets do |t|      t.string :body      t.integer :user_id      t.timestamps    end  endend
    108. 108. model generator db/migrate/ 20120320213424_create_tweets.rbclass CreateTweets < ActiveRecord::Migration  def change    create_table :tweets do |t|      t.string :body      t.integer :user_id      t.timestamps DBの「手順書」    end  endend
    109. 109. migrate
    110. 110. migrate> rake db:migrate
    111. 111. migrate> rake db:migrate== CreateUsers: migrating ================-- create_table(:users) -> 0.0016s== CreateUsers: migrated (0.0017s) =========== CreateTweets: migrating ===============-- create_table(:tweets) -> 0.0023s== CreateTweets: migrated (0.0025s) ========
    112. 112. migrate> rake db:migrate 「手順書」からDBを作成== CreateUsers: migrating ================-- create_table(:users) -> 0.0016s== CreateUsers: migrated (0.0017s) =========== CreateTweets: migrating ===============-- create_table(:tweets) -> 0.0023s== CreateTweets: migrated (0.0025s) ========
    113. 113. 動かしてみる
    114. 114. 動かしてみるhttp://localhost:3000/users/
    115. 115. 動かしてみるhttp://localhost:3000/users/
    116. 116. 動かしてみるhttp://localhost:3000/users/
    117. 117. 動かしてみるhttp://localhost:3000/users/
    118. 118. 設計User nameTweet body user_id
    119. 119. 設計User name body user_id
    120. 120. 設計User name
    121. 121. 設計User
    122. 122. 設計User
    123. 123. 設計 UserTweet
    124. 124. 設計 UserTweet
    125. 125. 設計 UserTweet Tweet
    126. 126. 設計 UserTweet Tweet
    127. 127. 設計 UserTweet Tweet Tweet
    128. 128. 設計 UserTweet Tweet Tweet
    129. 129. 関連付け
    130. 130. 関連付けapp/models/user.rb
    131. 131. 関連付け app/models/user.rbclass User < ActiveRecord::Baseend
    132. 132. 関連付けapp/models/user.rb
    133. 133. 関連付け app/models/user.rbclass User < ActiveRecord::Base  has_many :tweetsend
    134. 134. 関連付け app/models/user.rbclass User < ActiveRecord::Base  has_many :tweetsend 追加
    135. 135. 関連付け
    136. 136. 関連付けapp/models/tweet.rb
    137. 137. 関連付け app/models/tweet.rbclass Tweet < ActiveRecord::Baseend
    138. 138. 関連付けapp/models/tweet.rb
    139. 139. 関連付け app/models/tweet.rbclass Tweet < ActiveRecord::Base  belongs_to :userend
    140. 140. 関連付け app/models/tweet.rbclass Tweet < ActiveRecord::Base  belongs_to :userend 追加
    141. 141. つぶやきを表示
    142. 142. つぶやきを表示http://localhost:3000/users/1
    143. 143. つぶやきを表示http://localhost:3000/users/1
    144. 144. つぶやきを表示http://localhost:3000/users/1 この辺につぶやき追加
    145. 145. つぶやきを表示
    146. 146. つぶやきを表示 Controller
    147. 147. つぶやきを表示
    148. 148. つぶやきを表示app/controllers/users_controller.rb
    149. 149. つぶやきを表示 app/controllers/users_controller.rb  # GET /users/1  # GET /users/1.json  def show    @user = User.find(params[:id])    respond_to do |format|      format.html # show.html.erb      format.json { render json: @user }    end  end
    150. 150. つぶやきを表示 app/controllers/users_controller.rb   # GET /users/1   # GET /users/1.json   def show     @user = User.find(params[:id])showアクション=users/1     respond_to do |format|       format.html # show.html.erb       format.json { render json: @user }     end   end
    151. 151. つぶやきを表示 app/controllers/users_controller.rb  # GET /users/1  # GET /users/1.json  def show    @user = User.find(params[:id])    respond_to do |format|      format.html # show.html.erb      format.json { render json: @user }    end  end
    152. 152. つぶやきを表示app/controllers/users_controller.rb
    153. 153. つぶやきを表示 app/controllers/users_controller.rb  # GET /users/1  # GET /users/1.json  def show    @user = User.find(params[:id])    @tweets = @user.tweets    respond_to do |format|      format.html # show.html.erb      format.json { render json: @user }    end  end
    154. 154. つぶやきを表示 app/controllers/users_controller.rb  # GET /users/1  # GET /users/1.json  def show    @user = User.find(params[:id])    @tweets = @user.tweets 追加    respond_to do |format|      format.html # show.html.erb      format.json { render json: @user }    end  end
    155. 155. つぶやきを表示 app/controllers/users_controller.rb  # GET /users/1  # GET /users/1.json @user.tweetsで@userのtweetを取得  def show    @user = User.find(params[:id])    @tweets = @user.tweets 追加    respond_to do |format|      format.html # show.html.erb      format.json { render json: @user }    end  end
    156. 156. つぶやきを表示
    157. 157. つぶやきを表示 View
    158. 158. つぶやきを表示
    159. 159. つぶやきを表示app/views/users/show.html.erb
    160. 160. つぶやきを表示 app/views/users/show.html.erb<p id="notice"><%= notice %></p><p>  <b>Name:</b>  <%= @user.name %></p>
    161. 161. つぶやきを表示app/views/users/show.html.erb
    162. 162. つぶやきを表示 app/views/users/show.html.erb<p>  <b>Name:</b>  <%= @user.name %></p><p>  <b><%= @user.name %>さんのつぶやき</b>  <ul>    <% @tweets.each do |tweet| -%>      <li><%= tweet.body %></li>    <% end -%>  </ul></p>
    163. 163. つぶやきを表示 app/views/users/show.html.erb<p>  <b>Name:</b>  <%= @user.name %></p><p>  <b><%= @user.name %>さんのつぶやき</b>  <ul>    <% @tweets.each do |tweet| -%>      <li><%= tweet.body %></li>    <% end -%> 追加  </ul></p>
    164. 164. つぶやきを表示
    165. 165. つぶやきを表示http://localhost:3000/users/1
    166. 166. つぶやきを表示http://localhost:3000/users/1
    167. 167. つぶやく
    168. 168. つぶやくController
    169. 169. つぶやく
    170. 170. つぶやくapp/controllers/users_controller.rb
    171. 171. つぶやく app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      format.json { head :no_content }    end  endend
    172. 172. つぶやく app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      format.json { head :no_content }    end  endend 末尾のendの前に新しいメソッドを追加
    173. 173. つぶやく app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      format.json { head :no_content }    end  endend
    174. 174. つぶやくapp/controllers/users_controller.rb
    175. 175. つぶやく app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      format.json { head :no_content }    end  end  # POST /users/1/tweet  def tweet    @user = User.find(params[:id])    @tweet = @user.tweets.create(:body => params[:body])    redirect_to @user, notice: Tweet was successfully updated.  endend
    176. 176. つぶやく app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      format.json { head :no_content }    end  end  # POST /users/1/tweet  def tweet    @user = User.find(params[:id])    @tweet = @user.tweets.create(:body => params[:body])    redirect_to @user, notice: Tweet was successfully updated.  endend 追加
    177. 177. つぶやく app/controllers/users_controller.rb    respond_to do |format|      format.html { redirect_to users_url }      format.json { head :no_content }    end  end  # POST /users/1/tweet @user.tweets.createでtweetを追加  def tweet    @user = User.find(params[:id])    @tweet = @user.tweets.create(:body => params[:body])    redirect_to @user, notice: Tweet was successfully updated.  endend 追加
    178. 178. つぶやく
    179. 179. つぶやく View
    180. 180. つぶやく
    181. 181. つぶやくapp/views/users/show.html.erb
    182. 182. つぶやく app/views/users/show.html.erb<%= link_to Edit, edit_user_path(@user) %> |<%= link_to Back, users_path %>
    183. 183. つぶやくapp/views/users/show.html.erb
    184. 184. つぶやく app/views/users/show.html.erb<p>  <%= form_tag user_tweet_path do %>    今何してる?:<%= text_field_tag :body %>    <%= submit_tag %>  <% end -%></p><%= link_to Edit, edit_user_path(@user) %> |<%= link_to Back, users_path %>
    185. 185. つぶやく app/views/users/show.html.erb<p>  <%= form_tag user_tweet_path do %>    今何してる?:<%= text_field_tag :body %>    <%= submit_tag %> 追加  <% end -%></p><%= link_to Edit, edit_user_path(@user) %> |<%= link_to Back, users_path %>
    186. 186. つぶやく
    187. 187. つぶやくconfig/routes.rb
    188. 188. つぶやく config/routes.rbTwit::Application.routes.draw do  resources :users
    189. 189. つぶやくconfig/routes.rb
    190. 190. つぶやく config/routes.rbTwit::Application.routes.draw do  match /user/:id/tweet => users#tweet, :as => :user_tweet  resources :users
    191. 191. つぶやく config/routes.rbTwit::Application.routes.draw do  match /user/:id/tweet => users#tweet, :as => :user_tweet  resources :users 追加
    192. 192. つぶやく config/routes.rb/user/1/tweetでusers#tweetが呼ばれるようになる Twit::Application.routes.draw do   match /user/:id/tweet => users#tweet, :as => :user_tweet   resources :users 追加
    193. 193. つぶやいてみる
    194. 194. つぶやいてみるhttp://localhost:3000/users/1
    195. 195. つぶやいてみるhttp://localhost:3000/users/1
    196. 196. つぶやいてみるhttp://localhost:3000/users/1
    197. 197. トップページ
    198. 198. トップページhttp://localhost:3000/
    199. 199. トップページhttp://localhost:3000/
    200. 200. トップページhttp://localhost:3000/
    201. 201. トップページhttp://localhost:3000/
    202. 202. トップページ
    203. 203. トップページ config/routes.rb
    204. 204. トップページ config/routes.rbTwit::Application.routes.draw do  match /user/:id/tweet => users#tweet, :as => :user_tweet  resources :users
    205. 205. トップページ config/routes.rb
    206. 206. トップページ config/routes.rbTwit::Application.routes.draw do  match /user/:id/tweet => users#tweet, :as => :user_tweet  resources :users  root :to => "users#index"
    207. 207. トップページ config/routes.rbTwit::Application.routes.draw do  match /user/:id/tweet => users#tweet, :as => :user_tweet  resources :users  root :to => "users#index" 追加
    208. 208. トップページ
    209. 209. トップページhttp://localhost:3000/
    210. 210. トップページhttp://localhost:3000/
    211. 211. トップページhttp://localhost:3000/???
    212. 212. トップページ
    213. 213. トップページ public/index.html
    214. 214. トップページ 削除 public/index.html
    215. 215. トップページ
    216. 216. トップページhttp://localhost:3000/
    217. 217. トップページhttp://localhost:3000/
    218. 218. 次回予告• トップページにタイムライン表示• つぶやきを新しい順に並べる• デザインをかっこよく• Ajaxで動きのあるページに• 多分時間が足りません
    219. 219. ご清聴ありがとうございました
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×