Download presentation
Presentation is loading. Please wait.
1
Ruby on Rails (RoR) 講習会 近畿大学大学院 田中大介
2
本日の目標 Web アプリケーションを作ろう!
3
本日の予定 Web アプリケーションとは? データベース( DB )とは? MVC モデルとは? scaffold とは? 実践練習
4
Web アプリケーション Web 上で動作するアプリケーション インストールが不要 ブラウザさえあれば動く (動作環境に依存しない) ex. Google 検索、 YouTube 、 Amazon など
5
Web アプリケーション Web アプリはデータを使う Google 検索 ⇒ サイトの URL YouTube ⇒ 動画やそのタイトル Amazon ⇒ 商品の名前やその値段 データを扱うしくみが必要 ⇒ DB
6
データベース( DB ) データを簡単に利用するためのしくみ 大量のデータを高速に処理できる 不正なデータを受け付けない ユーザ権限を管理できる etc … たくさんのテーブル(データの入れ物)を 持ちます
7
データベース( DB ) しくみ(例: Amazon ) DB 商品 テーブル 顧客 テーブル
8
データベース( DB ) しくみ(例: Amazon の商品) ID 商品名値段カテゴ リ 1 カッパ(黄色) 2,000 雨具 2 トマトサンド 300 食物 3 スプーン 1,000 食器 商品テーブル DB テーブル カラム レコード
9
データベース( DB ) しくみ(例: Amazon の商品) カテゴリ 値段 商品名 ID
10
MVC モデル ソフトウェアの設計モデルの一つ 3 要素を組み合わせ、システムを実装 データベースを処理する「 Model 」 表示(ブラウザ)を処理する「 View 」 View と Model を制御する「 Controller 」
11
MVC モデル例 図: wisdom 様 http://www.blwisdom.com/word/key/000517.html
12
MVC モデルの利点 機能ごとに分離 開発作業の分業が簡単 プログラマはプログラムに、 デザイナーはデザインに集中できる 変更の影響を受けにくくなる 一つのモデルを変更しても、 他に影響しない
13
Rails では プロジェクト作成時に Controller 、 Model 、 View をフォルダ分け MVC モデルの利点を 生かした開発を助ける
14
scaffold Rails には generator という コード生成プログラムがある controller ⇒ コントローラとビューを生成 model ⇒ モデルを生成 scaffold ⇒ 雛形を一括作成 CRUD (作成、一覧、更新、削除)ができ る 簡単な Web アプリケーションを瞬時に作 成
15
小まとめ(1) Web アプリケーションを作ります Web で動作する(ブラウザで操作する) アプリケーション データベースを使います データの入れ物です テーブル(入れ物)にレコード(データ) を 入れて使います
16
小まとめ(2) MVC モデルを利用します データベース担当 (Model) 、表示担当 ( View )、 制御担当( Controller )に分けられます プロジェクト作成時に自動で分けてくれま す scaffold を利用します 簡単に雛形アプリを作れます
17
実践練習 本を管理する Web アプリを作成する テーブル Books テーブル id : 固有番号 name : 書名 price : 値段 state : 状態(どこにあるか)
18
実践練習 本を管理する Web アプリを作成する 手順 1. プロジェクトを作成 2. scaffold を実行 3. データベースを作成 4. サーバ起動・確認
19
実践1・プロジェクトを作成 1. RailsNavigator で右クリック 2. New > RailsProject を選択 3. Project Name を 「 books 」にして終了
20
実践2・ scaffold を実行 Generators で scaffold を選択して、 「 book name:string price:integer state:string 」
21
実習 3 ・データベース作成 Rake Tasks で db:migrate を実行
22
実習4・サーバ起動 1. Servers で 作成したプロジェクトの サーバを起動 2. http://localhost:3000/books (ポート番号は起動したサーバのも の) http://localhost:3000/books
23
解説1・プロジェクトを作成 各ディレクトリの中身 app : Model 、 View 、 Controller config :各種設定ファイル db :データベースに関連するファイル log :ログファイル public : Web 経由でアクセスできるファイル test :テストコード
24
解説2・ scaffold を実行 scaffold テーブル名 { カラム名 : タイ プ } CRUD が可能な雛形 Web アプリを作成 Controller, Model, View, Migration 指定したタイプのカラムを持つ テーブルを作成する string : 文字列 integer : 整数 date : 日付
25
解説2・ scaffold を実行 controller メソッドで Model や View を制御する 例: http://localhost:3000/books/new ⇒ book コントローラの new メソッドが呼ばれ る 指定しなければ new.html.erb http://localhost:3000/books/new
26
解説2・ scaffold を実行 model CRUD 処理を行う。以下はメソッドの一例 Create : save メソッド Read : find メソッド Update : update メソッド Delete : destroy メソッド バリデーションをかけるのもこのファイル validates_presence_of : 空っぽのときエラー validates_numericality_of : 数値でないときエラー validates : その他
27
解説2・ scaffold を実行 view /views/layouts/xxx.html.erb + /views/xxx/yyy.html.erb で画面を作成 xxx : controller 名 yyy : action 名 layout の yield に埋め込まれる
28
解説2・ scaffold を実行 routes.rb map.resources メソッドが追加 CRUD にアクセスする URL を設定 /books/new => new メソッド /books/1 => show メソッド( ID は 1 番) /books/1/edit => edit メソッド( ID は 1 番) URL に変換するキーワードを設定 books_url => index メソッド new_book_path => new メソッド edit_book_path(1) => edit メソッド( ID は 1 番)
29
解説2・ scaffold を実行 migration データベースを操作するファイル create_table : テーブルを作成 drop_table : テーブルを削除 add_column : カラムの追加 remove_column : カラムの削除
30
練習問題 1.本の状態を「貸出中」にするリンク を作る 2.本の状態を「本棚」にするリンクを 作る 3.書名がない本をはじく 4.値段が数字でない本をはじく 5. 300 円以上の本だけを表示する
31
練習問題 1.本の状態を「貸出中」にするリンクを作る 1. メソッドを作成する ( app/controllers/books_controller.rb ) 2. メソッドへのアクセス方法を指定する ( config/routes.rb ) 3. リンクを作る ( app/views/books/index.html.erb ) 3.書名がない本をはじく 1. 書名にバリデーションをつける
32
終わり 資料 http://ecl.info.kindai.ac.jp/~earth- moon/study2008.ppt 今日の資料 http://ecl.info.kindai.ac.jp/~earth- moon/study2008.ppt http://api.rubyonrails.org/ Rails の取扱説明書(英語) http://api.rubyonrails.org/
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.