RUBY ON RAILS 3 Tutorial  を日本語訳してみた Chapter 3 の途中 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><...
Chapter3 Mostly Static Pages <ul><li>scaffold を用いない、 Web サービスの作成 </li></ul><ul><li>デフォルトでは Test::Unit が使われる為、 -T をつけて test...
Chapter3 Mostly Static Pages <ul><li>Gemfile 書き換え </li></ul><ul><li>gem インストール </li></ul><ul><li>rspec 用のコマンド実行 </li></ul>...
Chapter3 Mostly Static Pages <ul><li>Git にリポジトリを登録して、 Readme を作成、 push </li></ul>$ git init $ git add . $ git commit –m “I...
3.1.2. Static Pages with Rails <ul><li>Pages controller 作成  </li></ul><ul><ul><li>rails generate controller Pages home con...
3.2.1 Testing tools <ul><li>Rspec を利用する </li></ul><ul><li>Autotest </li></ul><ul><li>OS X なら Growl を入れたほうがいい </li></ul><ul...
3.2.1 Testing tools <ul><li>Mac OS X の場合 </li></ul><ul><ul><li>アプリケーションのルートに .autotest 作成 </li></ul></ul><ul><li>それ以外  .au...
3.2.1 Testing tools <ul><li>Windows ユーザは Windows 向け Growl いれてみるといいかも </li></ul><ul><li>Linux ・ Windows で Growl のような通知させたい場...
3.2.2 TDD: Red, Green, Refactor <ul><li>TDD においては、まずテストを失敗させてから ( 赤 ) </li></ul><ul><li>  ->それが通るよう ( 青 ) にコードを書く </li></u...
3.2.2 TDD: Red, Green, Refactor <ul><li>Pages コントローラ作成 </li></ul><ul><ul><li>自動で spec ファイルも作られる </li></ul></ul><ul><li>テスト...
Box 3.2 HTTP response codes <ul><li>HTTP リクエストを送ると、 HTTP status が返って来る </li></ul><ul><ul><li>200:  成功 </li></ul></ul><ul><...
3.2.2 TDD: Red, Green, Refactor <ul><li>rspec spec/ でテストを実行出来る </li></ul><ul><li>この段階でテストが失敗するなら </li></ul><ul><li>rake db...
3.2.2 TDD: Red, Green, Refactor <ul><li>RSpec の実行は rake spec でもいい </li></ul><ul><ul><li>rspec spec/  ->stack trace を表示してくれ...
3.2.2 TDD: Red, Green, Refactor <ul><li>Spork(https://github.com/timcharper/spork) </li></ul><ul><ul><li>RSpec は毎回 Rails 環...
3.2.2 TDD: Red, Green, Refactor <ul><li>Gemfile 変更〜 bundle install </li></ul>
3.2.2 TDD: Red, Green, Refactor <ul><li>spork の設定 </li></ul><ul><li>spec/spec_helper.rb 変更 </li></ul><ul><ul><li>require “...
3.2.2 TDD: Red, Green, Refactor require   ' spork ' Spork .prefork   do     ENV [ &quot; RAILS_ENV &quot; ] ||=   ' test '...
3.2.2 TDD: Red, Green, Refactor <ul><li>bundle exec spork で起動 </li></ul><ul><li>spork を使わない場合と使う場合比較 </li></ul><ul><li>合って...
この後の 3 章の内容 <ul><li>view の title が正しいかテストする </li></ul><ul><li>application.html.erb に <%= @title %> を埋め込んでしまう </li></ul><ul...
Chapter4 Rails-Flavored Ruby <ul><li>4章は大体こんな話 </li></ul><ul><li>Rails で Ruby のコードを使う </li></ul><ul><ul><li>主に Ruby の文法の話 ...
次回予告 <ul><li>3 章はかなりキツイ… しかし残り時間的に… </li></ul><ul><li>もうちょっと内容すっ飛ばすか、発表しない章があるかも… </li></ul>
Upcoming SlideShare
Loading in …5
×

Ruby on Rails3 Tutorial Chapter3

1,890 views
1,835 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
1,890
On SlideShare
0
From Embeds
0
Number of Embeds
191
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • この後 3.1 では static なページに付いての説明があり、 index.html を自分の好きな物の表示に変えるには (route) など有りますが、省略
  • http://w3g.jp/others/htaccess/redirect 301 Moved Permanently  とは、そのリソースが恒久的に別の場所へ移動したことを伝え、今後は移動先のリソースへと要求するように促します。移動先の URI は絶対 URI ( http://  からはじまる)で記述します。
  • 画面の関係上、コメント削除 require を増やして、 Spork の部分を 2 箇所増えてる 
  • Ruby on Rails3 Tutorial Chapter3

    1. 1. RUBY ON RAILS 3 Tutorial を日本語訳してみた Chapter 3 の途中 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. Chapter3 Mostly Static Pages <ul><li>scaffold を用いない、 Web サービスの作成 </li></ul><ul><li>デフォルトでは Test::Unit が使われる為、 -T をつけて test ディレクトリ自動生成させないようにする </li></ul><ul><ul><li>Rspec を使ってテストを書くため、現段階では test ディレクトリは必要ない </li></ul></ul>$ rails new sample_app –T
    5. 5. Chapter3 Mostly Static Pages <ul><li>Gemfile 書き換え </li></ul><ul><li>gem インストール </li></ul><ul><li>rspec 用のコマンド実行 </li></ul>$ bundle install $ rails generate rspec:install gem   ' rails ' ,  ' 3.1.1 ’ gem   ' sqlite3 ' group  :development   do    gem   ' rspec-rails ' ,  ' 2.0.1 ' end group  :test   do    gem   ' rspec ' ,  ' 2.0.1 '    gem   ' webrat ' ,  ' 0.7.1 ' end
    6. 6. Chapter3 Mostly Static Pages <ul><li>Git にリポジトリを登録して、 Readme を作成、 push </li></ul>$ git init $ git add . $ git commit –m “Initial commit” $ git mv README README.markdown $ git commit –a –m “Improved the README” $ git remote add origin git@github.com:<name>/sample_app.git $ git push origin master
    7. 7. 3.1.2. Static Pages with Rails <ul><li>Pages controller 作成 </li></ul><ul><ul><li>rails generate controller Pages home contact </li></ul></ul><ul><li>config/routes.rb に追加 </li></ul><ul><ul><li>get “pages/home” </li></ul></ul><ul><ul><li>get “pages/contact” </li></ul></ul>
    8. 8. 3.2.1 Testing tools <ul><li>Rspec を利用する </li></ul><ul><li>Autotest </li></ul><ul><li>OS X なら Growl を入れたほうがいい </li></ul><ul><ul><li>gem の autotest-fsevent と autotest-growl を入れる </li></ul></ul>$ gem install autotest –v 4.4.6 $ gem install autotest-rails-pure –v 4.1.2 $ gem install autotest-fsevent –v 0.2.4 $ gem install autotest-growl –v 0.2.9
    9. 9. 3.2.1 Testing tools <ul><li>Mac OS X の場合 </li></ul><ul><ul><li>アプリケーションのルートに .autotest 作成 </li></ul></ul><ul><li>それ以外 .autotest </li></ul><ul><ul><li>私の環境 (OS X Snow Leopard) では autotest コマンドでエラーがでたため、下の方にした </li></ul></ul>require ‘autotest/growl’ require ‘autotest/fsevent’ require ‘ autotest-growl ’ require ‘ autotest-fsevent ’
    10. 10. 3.2.1 Testing tools <ul><li>Windows ユーザは Windows 向け Growl いれてみるといいかも </li></ul><ul><li>Linux ・ Windows で Growl のような通知させたい場合は参考に </li></ul><ul><ul><li>http://fredschoeneman.posterous.com/pimp-your-autotest-notification </li></ul></ul><ul><li>autotest が実行できて、 Growl での通知があると便利! </li></ul><ul><li>(Ruby マークが信号機みたいに見える… ) </li></ul>
    11. 11. 3.2.2 TDD: Red, Green, Refactor <ul><li>TDD においては、まずテストを失敗させてから ( 赤 ) </li></ul><ul><li>  ->それが通るよう ( 青 ) にコードを書く </li></ul><ul><li>すでに書いてしまったコードに対してテストを書くのではない </li></ul>
    12. 12. 3.2.2 TDD: Red, Green, Refactor <ul><li>Pages コントローラ作成 </li></ul><ul><ul><li>自動で spec ファイルも作られる </li></ul></ul><ul><li>テスト作成 spec/controllers/pages_controller_spec.rb </li></ul>$ rails generate controller Pages require   ' spec_helper ' describe   PagesController   do    describe   &quot; GET 'home' &quot;   do      it   &quot; should be successful &quot;   do        get   &quot; home &quot;        response .should be_success      end    end end
    13. 13. Box 3.2 HTTP response codes <ul><li>HTTP リクエストを送ると、 HTTP status が返って来る </li></ul><ul><ul><li>200: 成功 </li></ul></ul><ul><ul><li>301: リソースが別の場所に移動してしまっている状態 </li></ul></ul><ul><li>curl がインストール済みならコマンドラインから見れる </li></ul><ul><li>RSpec で response.should be_success と書くときは、 status code が 200 のレスポンスであるということ </li></ul>$ curl --head www.google.com HTTP/1.1 302 Found … 省略…
    14. 14. 3.2.2 TDD: Red, Green, Refactor <ul><li>rspec spec/ でテストを実行出来る </li></ul><ul><li>この段階でテストが失敗するなら </li></ul><ul><li>rake db:migrate </li></ul><ul><li>bundle exec rspec spec/ </li></ul><ul><li>それでもだめなら再インストール </li></ul><ul><li>gem uninstall rspec rspec-rails </li></ul><ul><li>bundle install </li></ul>
    15. 15. 3.2.2 TDD: Red, Green, Refactor <ul><li>RSpec の実行は rake spec でもいい </li></ul><ul><ul><li>rspec spec/ ->stack trace を表示してくれる </li></ul></ul><ul><ul><li>rspec spec -> してくれない </li></ul></ul><ul><li>RVM がおかしくなったら </li></ul><ul><ul><li>一旦使っていた gemset 削除して、 gem の再インストールしてみる </li></ul></ul>
    16. 16. 3.2.2 TDD: Red, Green, Refactor <ul><li>Spork(https://github.com/timcharper/spork) </li></ul><ul><ul><li>RSpec は毎回 Rails 環境を読み込んでいるため遅い </li></ul></ul><ul><ul><li>Spork は 1 度環境を読み込むだけ </li></ul></ul><ul><ul><li>Autotest と一緒に使いやすい </li></ul></ul>
    17. 17. 3.2.2 TDD: Red, Green, Refactor <ul><li>Gemfile 変更〜 bundle install </li></ul>
    18. 18. 3.2.2 TDD: Red, Green, Refactor <ul><li>spork の設定 </li></ul><ul><li>spec/spec_helper.rb 変更 </li></ul><ul><ul><li>require “spork” と Spork 節が 2 つ増えている </li></ul></ul>$ spork --bootstrap
    19. 19. 3.2.2 TDD: Red, Green, Refactor require   ' spork ' Spork .prefork   do     ENV [ &quot; RAILS_ENV &quot; ] ||=   ' test '    require   File .expand_path( &quot; ../../config/environment &quot; ,   __FILE__ )    require   ' rspec/rails '    Dir [ Rails .root.join( &quot; spec/support/**/*.rb &quot; )].each {| f |  require  f}    RSpec .configure   do  | config |      config.mock_with   :rspec     config.fixture_path =   &quot;#{ :: Rails .root } /spec/fixtures &quot;     config.use_transactional_fixtures =   true    end end Spork .each_run   do end  
    20. 20. 3.2.2 TDD: Red, Green, Refactor <ul><li>bundle exec spork で起動 </li></ul><ul><li>spork を使わない場合と使う場合比較 </li></ul><ul><li>合っているはずのテストが通らないときは、 Spork を ctrl + c で止めて再起動すべし </li></ul>$ time rspec spec/  … Finished in 0.29592 seconds 5 examples, 0 failures, 3 pending   real 0m11.099s user 0m7.833s sys 0m1.632s   time rspec --drb spec/ ..*** Finished in 0.21522 seconds 5 examples, 0 failures, 3 pending real 0m1.075s user 0m0.368s sys 0m0.125s
    21. 21. この後の 3 章の内容 <ul><li>view の title が正しいかテストする </li></ul><ul><li>application.html.erb に <%= @title %> を埋め込んでしまう </li></ul><ul><ul><li>アクション内に @title=hoge とページ毎のタイトルを代入しておく </li></ul></ul><ul><ul><li>@title で埋め込んだ文字列と想定する文字列を比較テスト </li></ul></ul>
    22. 22. Chapter4 Rails-Flavored Ruby <ul><li>4章は大体こんな話 </li></ul><ul><li>Rails で Ruby のコードを使う </li></ul><ul><ul><li>主に Ruby の文法の話 </li></ul></ul><ul><li>rails console で irb のように色々やってみる </li></ul><ul><ul><li>数字の計算・文字列代入等々 </li></ul></ul>
    23. 23. 次回予告 <ul><li>3 章はかなりキツイ… しかし残り時間的に… </li></ul><ul><li>もうちょっと内容すっ飛ばすか、発表しない章があるかも… </li></ul>

    ×