Ruby on Rails (RoR) 講習会 近畿大学大学院 田中大介 本日の予定 MVCモデル ペアプログラミング scaffold 練習問題 本日の目標 MVCモデルを考慮しつつ、 ペアプログラミングにより、 scaffoldを使ってアプリを作る MVCモデル ソフトウェアの設計モデルの一つ 3要素を組み合わせ、システムを実装 処理を行う「Model」 表示・出力を行う「View」 ViewとModelを制御する「Controller」 MVCモデル例 図:wisdom様 http://www.blwisdom.com/word/key/000517.html MVCモデルの利点 機能ごとに分離 開発作業の分業が簡単 変更の影響を受けにくくなる Railsでは プロジェクト作成時に Controller、Model、View をフォルダ分け MVCモデルの利点を 生かした開発を助ける 本日の目標 MVCモデルを考慮しつつ、 ペアプログラミングにより、 scaffoldを使ってアプリを作る MVCモデル 「Model」「View」「Controller」を組み合わせてシステムを作る方式 ペアプログラミング XP(エクストリームプログラミング)の1手法 すべてのコードを2人一組で実装する 1人がコーディング、1人がチェックとナビ ペアプログラミングのメリット コードの品質が上がる 開発速度が上がる プロジェクトのリスクは下がる 本日の目標 MVCモデルを考慮しつつ、 ペアプログラミングにより、 scaffoldを使ってアプリを作る MVCモデル 「Model」「View」「Controller」を組み合わせてシステムを作る方式 ペアプログラミング 2人一組でシステムを実装する scaffold Railsの持つ強力なフレームワーク データベースの構造を基にして、 CRUD(新規作成、一覧、更新、削除)を提供 簡単なWebアプリケーションを瞬時に作成 実習・手順 1. 2. 3. 4. 5. 商品を管理するWebアプリを作成する プロジェクト作成 データベースの設定 データベース作成 scaffold実行 サーバ起動・確認 実習1・プロジェクトを作成 1. 2. 3. RailsNavigatorで右クリック New > RailsProjectを選択 Project Nameを 「depot」にして終了 実習2・データベースの設定 depot プロジェクトの config / database.yml を下のように変更 development部分 adapter : sqlite3 database: db/development.sqlite3 実習3・データベース作成 1.データベースの元となる migrationファイルを作成 generatorsで以下を実行 • • model Product title:string description:text image_url:string price:float 実習3・データベース作成 2.migrationファイルから データベースを作成 • Rake Tasks で db:migrateを実行 実習4・scaffoldを実行 Generators で scaffold Product Product 実習5・サーバ起動 1. 2. Servers で 作成したプロジェクトの サーバを起動 http://localhost:3000/product (ポート番号は起動したサーバのもの) 実演 がんばります 解説1・プロジェクトを作成 各ディレクトリの中身 app:Model、View、Controller config:各種設定ファイル db:データベースに関連するファイル log:ログファイル public:Web経由でアクセスできるファイル test:テストコード 解説2・データベースの作成 generate model Product title:stirng… 1. 第1引数で作成するモデル名を指定、 第2引数以降で変数名と型を指定 同時に、db/migrateにmigrationファイルが生成 rake db:migrate 2. 実行すると、ファイルからDB作成 ⇒ モデル名の複数形がテーブル名に、変数がカラムに ただし、データベースにオプションはつけられない ⇒ バリデーションをかけることで解決 参照:型とカラム型のマッピング一覧 http://hsj.g.hatena.ne.jp/donayama/20060102/migration 解説3・scaffold 第1引数でModel名を指定、 第2引数でController・View名を指定 作成されるファイル app/controllers/product_controller.rb : controller app/models/product.rb : model app/views/product/* : view helper, layout, テスト関連のファイル等 解説3・scaffold controller URLを通じて呼び出される 例:http://localhost:3000/product/show/3 ⇒ productコントローラのshowメソッドが呼ばれる 指定しなければshowのviewが呼び出される config / routes.rb で調整可能 解説3・scaffold model CRUD処理を行う。以下はメソッドの一例 create(insert) : saveメソッド read(select) : findメソッド update : updateメソッド delete : destroyメソッド バリデーションをかけるのもこのファイル validates_presence_of : not null 制約 validates_numericality_of : 数値かどうか validates : その他のバリデーション 解説3・scaffold view layout と views の中身によって画面を作成 controller名に対応したlayoutが適用される (変更したい場合は layout メソッドを使用) layoutにあるyieldフィールドに、 viewの中身が埋め込まれる 練習問題 1.じゃんけんプログラムを Webアプリケーションにして下さい 「グー」、「チョキ」、「パー」を入力 勝敗を表示 戦績を一覧で表示 練習問題 2.商品アプリをより使いやすくして下さい 1. 商品にバリデーションをかける 2. 機能を追加する 3. 画面を見やすくする等 参考:http://techno.hippy.jp/apidoc/ http://api.rubyonrails.org/ 終わり 資料 http://ecl.info.kindai.ac.jp/~earthmoon/mvc.ppt
© Copyright 2024 ExpyDoc