Tech fun rails_workshop

1,671 views
1,629 views

Published on

2013/02/04にTechFUNでやったRails勉強会の資料です

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,671
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Tech fun rails_workshop

  1. 1. RUBY ONRAILSWORKSHOP! @equal_001
  2. 2. SELF-INTRODUCTION• 杉谷 弥月(すぎや みつき) • 去年の冬頃からTechFUNに入りました @equal_001 • LOCAL学生部に所属してます • 趣味はWebアプリケーションやAndroidアプリでゲー ム作成したり、ハッカーの真似事したり、ビブリオバトルし たり… • 好きな言語はC++,Ruby(ときどきJava) • 「一人開発さびしいよー、学内の人と一緒に開発したい!」
  3. 3. CONTENTS• What’s Rails?• Creating the application!• Put your application online• Finally
  4. 4. LETSSTART!
  5. 5. WHAT’SRAILS?
  6. 6. WHAT’S RAILS?• Ruby on Rails • プログラミング言語Rubyで構築されたWEBアプリケー ションフレームワーク • つまり、Webアプリケーションを効率的に開発するための ライブラリとツールの集まり
  7. 7. WHAT’S RAILS?• 設計哲学 • 「同じことを繰り返さない」 • 定義の重複は避け、作業は一回で済ませよう • 「設定より規約」 • Railsの設計規約に従って開発をすることで、設 定を軽減できるよ
  8. 8. WHAT’S RAILS?• 特徴その1:MVCアーキテクチャ • アプリケーションをModel View Controller」の3つの 部分に分割して設計・実装 • Model: データベース管理役、アプリケーションの状態保 持 • View: ユーザインターフェースの生成、表示のための ロジック • Controller: アプリケーション内のブレイン、外部イベントか らの処理 をModelとViewへ適切に渡す
  9. 9. WHAT’S RAILS? • RailsのMVCアーキテクチャ図Browser ①リクエスト送信 Controller ②データ入出力④画面生成の レスポンス ③Viewの呼び出し view Model DB
  10. 10. WHAT’S RAILS?• 特徴その2:直観的なデータベース操作 • SQL言語で操作しなくて済む • Rubyのように直観的にコードを書ける 例) studentsというテーブルからIDが1009173のレコードを検 可読性が 索する 高まる SQL ミスの軽減、 SELECT * FROM students WHERE id = 1009173; 発見しやすさ Ruby on Rails Student.find(1009173) 仕様変更も そんなに嫌 じゃなくなる
  11. 11. EXAMPLE• COOKPAD• Twitter• GitHub• 食べログ
  12. 12. CREATINGTHEAPPLICATION!
  13. 13. ところで皆さん、ちゃんと環境設定できましたか? できてない方は挙手!(・ω・) ノ
  14. 14. CREATINGTHE APPLICATION!• Rails Girls Guidesにあるチュートリアルに 沿って、アイディアボートっぽいものをつ くってみよう こんなイメージ! My Idea • タイトル 花見 • 内容 はなみをしてすとれす解 消する方法を… • 画像アップロード機能 編集/削除 入学式 大学生になったので、 イメチェンして大学デビ … 編集/削除
  15. 15. CREATINGTHE APPLICATION!• Rails Girls Guides http://railsgirls-jp.github.com/app/
  16. 16. CREATING THE APPLICATION • オススメのエディタ(他にも良いものが沢山ある よ!) • Sublime 画面分割できる コードが自動的に 色分けされて見やファイルの階層 すい が見れる
  17. 17. CREATINGTHE APPLICATION• Rails new [アプリケーション名] • 新しいアプリケーションを作成するコマンド • アプリケーションとして成立させるための必要 最低の基盤をrailsが自動生成してくれる
  18. 18. CREATINGTHE APPLICATION• 開発用のWebサーバを起動してみようrails server ・デフォルトでポート3000を使っている ・http://localhost:3000 というURLを入力 す ればアプリケーションにアクセスできる
  19. 19. CREATINGTHE APPLICATION• 初期画面 • これがでてくればアプリは正常に動いている
  20. 20. CREATING THE APPLICATION • contentのscaffoldをするrails generate scaffold content title:string description:textimage:string • アプリケーションの基本的な機能の 一覧(index) 詳細(show) 新規作成(new/create) 編集(edit/update) 削除(destroy) を行うために必要なコントローラ、モデル、ビューをまとめ て生成
  21. 21. CREATING THE APPLICATIONrails generate scaffold content title:string description:textimage:string contents title string Model description text image stringIntex,show,new,edit,destroy view このコマンドだけで、これだけのファイルが自動生成される!
  22. 22. CREATINGTHE APPLICATION• 未実行のマイグレーションファイルをデー タベースに適用するrake db:migraterails s • 「さっきscaffoldして作ったcontentsテーブルを、データ ベースに適用する」というコマンド
  23. 23. CREATINGTHE APPLICATION• 写真アップロード機能を追加する • Gemfileに使用するライブラリを記述する • アップロード機能を追加するためのライブラリをインストーGemfileルするgem ‘sqlite3’gem ‘carrierwave’ • Terminalでbundleコマンドを入力し、’carrierwave’ライブラ リをインストールするbundle
  24. 24. CREATING THE APPLICATION • 写真アップロード機能を追加する • 今のままだと、写真のファイルのpathが表示されるので、 ちゃんと画像が表示されるようにする app/views/ideas/show.html.erb <%= @idea.picture %>’ <%= image_tag(@idea.picture_url, :width => 600) if @idea.picture.present? %>image_tag(画像ファイルpath), オプショ Ideaテーブルのpictureの中身がnilまン)でHTMLで画像を表示することができ たは空のオブジェクトでは無い場る 合、image_tagメソッドで画像を表示 させる
  25. 25. CREATINGTHE APPLICATION• routes を調整する • デフォルトページ(http://localhost:3000) が のままなので、ideasにリダイレクトするように設定しましょう • 下準備として、 の元である public/index.htmlを消す • config/routes.rbでリダイレクト先を指定する# You can have the root of your site routed with"root"# just remember to delete public/index.html.# root :to => welcome#index コメントを読むと、root :to => redirect(/ideas) ちゃんとやり方が書い てあるよ! • 今は指定先が1つだけど、複数ある場合は 上に書いた順に優先順位が決まるよ!
  26. 26. PUT YOURAPPLICATIONONLINE
  27. 27. PUT YOURAPPLICATIONONLINE• Herokuをつかって自分のアプリケーションを公開し よう! • Web開発からWebアプリケーションの公開までサポートして くれるプラットフォーム • WebサーバやGitリポジトリ等の必要最低限の機能を無料で提 供 • カスタム制なので、運用に必要な分の機能を付けたり外した りすることができる • 今回は、比較的手軽にデプロイできるHerokuを使っていくよ! 規模の小さいアプリだったら、サーバを無料から使えるよ!
  28. 28. FINALLY
  29. 29. FINALLY• Railsを学ぶのにオススメするWebサイト • Ruby/Rails Study Guide • RAILSCASTS• オススメの書籍 • RailsによるアジャイルWebアプリケーション開発 第4版 • Head First Rails ―頭とからだで覚えるRailsの基本

×