Your SlideShare is downloading. ×
0
RUBY ON RAILS 3 Tutorial  を日本語訳してみた Chapter 2 2011-10-12
目次 <ul><li>Chapter1 Rails 導入からデプロイ </li></ul><ul><li>Chapter2  デモアプリ (scaffold 使用 ) </li></ul><ul><li>Chapter3 Web アプリケーショ...
目次 <ul><li>Chapter8  ユーザ登録 </li></ul><ul><li>Chapter9  ログイン・ログアウト </li></ul><ul><li>Chapter10  ユーザデータの更新・編集・追加 </li></ul><...
Chapter 2  A demo app <ul><li>scaffold を使ってデモアプリを作る </li></ul><ul><li>バージョン管理は Git で </li></ul><ul><li>※ Tutorial に書いてあるバー...
2.1 Planning the Application <ul><li>Rails のアプリ作成 </li></ul><ul><li>bundle install コマンド実行 </li></ul><ul><li>Tutorial では 3....
2.1 Planning the Application <ul><li>Git に commit する </li></ul><ul><li>github で作成したリポジトリに push する </li></ul>$ git init $ g...
2.1 Planning the Application <ul><li>今回考えられるモデル </li></ul>users id integer name string email string microposts id integer ...
2.1 Planning the Application <ul><li>scaffold で User 作成 </li></ul><ul><li>DB の初期化 </li></ul><ul><li>起動 (rails s) </li></ul...
Box 2.1  Rake <ul><li>Rake コマンドの一覧出力 </li></ul><ul><ul><li>DB に関連したコマンド (rake –T db) </li></ul></ul><ul><ul><li>すべて (rake ...
2.2.1 A User Tour <ul><li>http://localhost:3000 にアクセス </li></ul><ul><ul><li>Rails の index ページが見える </li></ul></ul><ul><ul><...
2.2.2 MVC in Action <ul><li>MVC モデルで /users が表示されるまで </li></ul><ul><ul><li>ブラウザから /users にリクエスト </li></ul></ul><ul><ul><li...
2.2.2 MVC in Action <ul><ul><li>5.  User モデルがコントローラにすべてのユーザの list を返す </li></ul></ul><ul><ul><li>6.   コントローラが @users に lis...
2.2.2 MVC in Action <ul><li>@ から始まる変数は、 instance variables と呼ばれる </li></ul><ul><li>自動的に view で利用出来る変数になる </li></ul>
2.2.3  Weaknesses of This Users Recource <ul><li>データのバリデーションをチェックしていない </li></ul><ul><ul><li>name の入力がない・不正なメールアドレスでも処理してし...
2.2.3  Weaknesses of This Users Recource <ul><li>レイアウトがない </li></ul><ul><ul><li>サイトにあった CSS スタイルやナビゲーションがない </li></ul></ul...
2.3 The Microposts Resource <ul><li>User 同様、 Micropost を作成する </li></ul>$  rails generate scaffold Micropost content:string...
2.3 The Microposts Resource HTTP request URL Action 詳細 GET /microposts index すべての post 表示ページ GET /microposts/1 show id が1の...
2.3 The Microposts Resource <ul><li>app/models/micropost.rb にバリデーション追加 </li></ul>class   Micropost  <  ActiveRecord :: Bas...
2.3 The Microposts Resource <ul><li>“ the default Rails error messages are not valid HTML” </li></ul><ul><ul><li>正しい HTML ...
2.3.3 A User has_many Microposts <ul><li>1 対多の関係 </li></ul><ul><li>app/models/user.rb と micropost.rb に追加 </li></ul><ul><ul...
2.3.3 A User has_many Microposts
2.3.5 Deploying the Demo App <ul><li>Microposts が完成したので、一度 push しておく </li></ul><ul><li>Heroku にデプロイ </li></ul>$ git add . ...
2.3.5 Deploying the Demo App <ul><li>Heroku にデプロイがうまくいかなかったとき </li></ul><ul><li>Listen 1.8 で挙げたようになっているか Gemfile 確認 </li><...
2.4 Conclusion <ul><li>利点 </li></ul><ul><ul><li>Rails の概要をよく知ることが出来る </li></ul></ul><ul><ul><li>MVC モデルの導入になる </li></ul></...
2.4 Conclusion <ul><li>欠点 </li></ul><ul><ul><li>レイアウトやスタイルがない </li></ul></ul><ul><ul><li>Home や About のような静的ページがない </li></...
Upcoming SlideShare
Loading in...5
×

Ruby on Rails3 Tutorial Chapter2

1,975

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,975
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • この正しい HTML 構成ではないというのがよく分からなかった…
  • Transcript of "Ruby on Rails3 Tutorial Chapter2"

    1. 1. RUBY ON RAILS 3 Tutorial を日本語訳してみた Chapter 2 2011-10-12
    2. 2. 目次 <ul><li>Chapter1 Rails 導入からデプロイ </li></ul><ul><li>Chapter2 デモアプリ (scaffold 使用 ) </li></ul><ul><li>Chapter3 Web アプリケーション </li></ul><ul><li>Chapter4 Rails 風 Ruby </li></ul><ul><li>Chapter5 スタイルを追加する </li></ul><ul><li>Chapter6 User Model と View その 1 </li></ul><ul><li>Chapter7 User Model と View その 2 </li></ul>
    3. 3. 目次 <ul><li>Chapter8 ユーザ登録 </li></ul><ul><li>Chapter9 ログイン・ログアウト </li></ul><ul><li>Chapter10 ユーザデータの更新・編集・追加 </li></ul><ul><li>Chapter11 ミニブログ ( ツイート ) </li></ul><ul><li>Chapter12 ユーザのフォロー </li></ul>
    4. 4. Chapter 2 A demo app <ul><li>scaffold を使ってデモアプリを作る </li></ul><ul><li>バージョン管理は Git で </li></ul><ul><li>※ Tutorial に書いてあるバージョン指定ではなく 3.1 で試しています </li></ul>
    5. 5. 2.1 Planning the Application <ul><li>Rails のアプリ作成 </li></ul><ul><li>bundle install コマンド実行 </li></ul><ul><li>Tutorial では 3.0.9 ですが 3.1 でやってみます </li></ul><ul><li>※ 3.0.9 の場合 Gemfile 修正が必要↓ </li></ul>$ rails new demo_app $ cd demo_app $ bundle install
    6. 6. 2.1 Planning the Application <ul><li>Git に commit する </li></ul><ul><li>github で作成したリポジトリに push する </li></ul>$ git init $ git add . $ git commit –m “Initial commit” $ git remote add origin git@github.com:<username>/demo_app.git $ git push origin master
    7. 7. 2.1 Planning the Application <ul><li>今回考えられるモデル </li></ul>users id integer name string email string microposts id integer content string user_id integer
    8. 8. 2.1 Planning the Application <ul><li>scaffold で User 作成 </li></ul><ul><li>DB の初期化 </li></ul><ul><li>起動 (rails s) </li></ul>$ rails generate scaffold User name:string email:string invoke active_record create db/migrate/20111011172415_create_users.rb create app/models/user.rb invoke test_unit          …省略… $ rake db:migrate == CreateUsers: migrating ============= -- create_table(:users) -> 0.0023s == CreateUsers: migrated (0.0024s) =================================
    9. 9. Box 2.1 Rake <ul><li>Rake コマンドの一覧出力 </li></ul><ul><ul><li>DB に関連したコマンド (rake –T db) </li></ul></ul><ul><ul><li>すべて (rake –T) </li></ul></ul>$ rake -T db … 省略… rake db:schema:load # Load a schema.rb file into the database rake db:seed # Load the seed data from db/seeds.rb rake db:structure:dump # Dump the database structure to an SQL file rake db:version # Retrieves the current schema version number $ rake –T … 省略… rake db:seed # Load the seed data from db/seeds.rb rake assets:clean # Remove compiled assets … 省略…
    10. 10. 2.2.1 A User Tour <ul><li>http://localhost:3000 にアクセス </li></ul><ul><ul><li>Rails の index ページが見える </li></ul></ul><ul><ul><li>config/routes.rb には </li></ul></ul><ul><ul><li>resources :users が追加されている </li></ul></ul>URL Action 説明 /users index 全ユーザ表示 /users/1 show ユーザ id が 1 のユーザ表示 /users/new new 新しいユーザを作るページ /users/1/edit edit ユーザ id が 1 のユーザの編集ページ
    11. 11. 2.2.2 MVC in Action <ul><li>MVC モデルで /users が表示されるまで </li></ul><ul><ul><li>ブラウザから /users にリクエスト </li></ul></ul><ul><ul><li>このルーティングの場合、 /users は User コントローラの index アクション </li></ul></ul><ul><ul><li>index アクションは User モデルに全ユーザ取得 (User.all) のリクエストを送る </li></ul></ul><ul><ul><li>User モデルが DB からすべてのユーザを取り出す </li></ul></ul>
    12. 12. 2.2.2 MVC in Action <ul><ul><li>5. User モデルがコントローラにすべてのユーザの list を返す </li></ul></ul><ul><ul><li>6. コントローラが @users に list を格納して、 index ビューに送る </li></ul></ul><ul><ul><li>7. ビューがユーザ一覧表示のため、 Ruby を埋込みで利用している </li></ul></ul><ul><ul><li>8. コントローラが作成された HTML をブラウザに返す </li></ul></ul>
    13. 13. 2.2.2 MVC in Action <ul><li>@ から始まる変数は、 instance variables と呼ばれる </li></ul><ul><li>自動的に view で利用出来る変数になる </li></ul>
    14. 14. 2.2.3 Weaknesses of This Users Recource <ul><li>データのバリデーションをチェックしていない </li></ul><ul><ul><li>name の入力がない・不正なメールアドレスでも処理してしまう </li></ul></ul><ul><li>認証がない </li></ul><ul><ul><li>他のユーザの登録情報が見えている </li></ul></ul><ul><li>テストがない </li></ul><ul><ul><li>scaffold はテストを内部に持っている </li></ul></ul><ul><ul><li>自動生成されたテストは、汚く・柔軟性が無い </li></ul></ul><ul><ul><li>バリデーション・認証等、他に必要な機能のテストが無い </li></ul></ul>
    15. 15. 2.2.3 Weaknesses of This Users Recource <ul><li>レイアウトがない </li></ul><ul><ul><li>サイトにあった CSS スタイルやナビゲーションがない </li></ul></ul><ul><li>実際的な理解がない </li></ul><ul><ul><li>scaffold のコードは自動生成の為、勉強にならない </li></ul></ul>
    16. 16. 2.3 The Microposts Resource <ul><li>User 同様、 Micropost を作成する </li></ul>$ rails generate scaffold Micropost content:string user_id:integer $ rake db:migrate
    17. 17. 2.3 The Microposts Resource HTTP request URL Action 詳細 GET /microposts index すべての post 表示ページ GET /microposts/1 show id が1の post を表示するページ GET /microposts/new new 新しい post 作成するページ POST /microposts create 新しい post 作成 GET /microposts/1/edit edit id が 1 の post を編集するページ PUT /microposts/1 update id が 1 の post を更新する DELETE /microposts/1 destroy id が 1 の post を削除する
    18. 18. 2.3 The Microposts Resource <ul><li>app/models/micropost.rb にバリデーション追加 </li></ul>class   Micropost  <  ActiveRecord :: Base validates   :content ,  :length  => {  :maximum  =>  140 } end
    19. 19. 2.3 The Microposts Resource <ul><li>“ the default Rails error messages are not valid HTML” </li></ul><ul><ul><li>正しい HTML 構成ではないらしい…? </li></ul></ul>
    20. 20. 2.3.3 A User has_many Microposts <ul><li>1 対多の関係 </li></ul><ul><li>app/models/user.rb と micropost.rb に追加 </li></ul><ul><ul><li>has_many と belongs_to </li></ul></ul>class   Micropost  <  ActiveRecord :: Base belongs_to   :user validates   :content ,  :length  => {  :maximum  =>  140 } end class   User  <  ActiveRecord :: Base has_many   :microposts end
    21. 21. 2.3.3 A User has_many Microposts
    22. 22. 2.3.5 Deploying the Demo App <ul><li>Microposts が完成したので、一度 push しておく </li></ul><ul><li>Heroku にデプロイ </li></ul>$ git add . $ git commit –a –m “Done with the demo app” $ git push $ heroku create $ git push heroku master $ heroku rake db:migrate
    23. 23. 2.3.5 Deploying the Demo App <ul><li>Heroku にデプロイがうまくいかなかったとき </li></ul><ul><li>Listen 1.8 で挙げたようになっているか Gemfile 確認 </li></ul><ul><li>DB に migration をかけてみる </li></ul>$ [ sudo ] gem install taps $ heroku db:push
    24. 24. 2.4 Conclusion <ul><li>利点 </li></ul><ul><ul><li>Rails の概要をよく知ることが出来る </li></ul></ul><ul><ul><li>MVC モデルの導入になる </li></ul></ul><ul><ul><li>REST について学べる </li></ul></ul><ul><ul><li>データモデリングを始めることが出来る </li></ul></ul><ul><ul><li>DB を使った動的サービスが作れる </li></ul></ul>
    25. 25. 2.4 Conclusion <ul><li>欠点 </li></ul><ul><ul><li>レイアウトやスタイルがない </li></ul></ul><ul><ul><li>Home や About のような静的ページがない </li></ul></ul><ul><ul><li>ユーザ情報がない </li></ul></ul><ul><ul><ul><li>パスワード </li></ul></ul></ul><ul><ul><ul><li>画像 </li></ul></ul></ul><ul><ul><li>登録がない </li></ul></ul><ul><ul><li>セキュリティーがない </li></ul></ul><ul><ul><li>自動的に user と micropost が関連されていない </li></ul></ul><ul><ul><li>フォローとフォロワーの関係がない </li></ul></ul><ul><ul><li>test~driven development ではない </li></ul></ul><ul><ul><li>実際的な理解が何も無い </li></ul></ul>
    1. A particular slide catching your eye?

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

    ×