• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Rails講座1
 

Rails講座1

on

  • 2,790 views

 

Statistics

Views

Total Views
2,790
Views on SlideShare
2,777
Embed Views
13

Actions

Likes
6
Downloads
10
Comments
0

3 Embeds 13

http://s.deeeki.com 7
https://twitter.com 4
http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Rails講座1 Rails講座1 Presentation Transcript

    • Rails講座第一回目
      東京情報大学
      河野義広
      2011/06/08
    • Rails講座の概要
      目的
      Ruby on Rails(Rails)の知識を得る
      Webアプリケーションの開発に活かす
      Webアプリ開発の最新動向を知る
      進め方
      解説に加え、適宜演習を交える
      内容
      第一回目:Railsの概要とRailsアプリの作成
      第二回目:開発環境と実装、デバッグのポイント
      第三回目:RailsアプリのApache連携とSSL対応
      第四回目:Twitter APIを利用した連携アプリの開発
      第五回目:Railsでのサーバ間通信~RESTfulな開発~
    • 第一回目の概要
      Railsの概要
      Ruby on Railsとは
      MVCアーキテクチャ
      利用するRails環境
      Railsアプリの作成(演習)
      Railsプロジェクトの作成とディレクトリ構成
      マイグレーションによるDB作成
      コントローラとビューの作成
      Railsアプリの実行
      Rails開発のメリット
      アジャイル開発
      プロジェクト管理
    • Ruby on Railsとは
      特徴
      Webアプリケーション開発の「フレームワーク」
      オブジェクト指向スクリプト言語「Ruby」で記述
      MVC(Model-View-Controller)アーキテクチャ
      モデル、ビュー、コントローラでの役割分担
      RubyとRails
      Ruby:プログラム言語
      Rails:Rubyで記述されたフレームワーク
      フレームワーク:ツール、ライブラリ、設定ファイル等
      Ruby on Rails
      Ruby
      図1. RubyとRailsの関係
    • MVCアーキテクチャ
      MVCアーキテクチャ
      モデル:DBとの連携(ActiveRecordの利用)
      ビュー:画面表示
      コントローラ:ユーザからのデータ入力
      コントローラ
      モデル
      DB
      端末
      ビュー
      ユーザ
      図2. MVCアーキテクチャの概要
    • Railsの設計哲学
      DRY(Don’t Repeat Yourself、繰り返しを避けよ)
      同じコードの繰り返しを避け、効率・品質の向上を目指す
      設定より規約(Convention over Configuration)
      あらかじめ用意された規約に従うことで設定を不要にする
      例:モデルの命名規則
      テーブル名:members(複数形にする)
      モデルのクラス名:Member(単数形となる)
      クラスを記述するファイル名:member.rb
    • Railsの主な特徴
      ルーティング
      「&」や「=」のないきれいなURLが使える
      例:http://localhost:3000/members/show/1
      マイグレーション
      DBのテーブルを定義するための機能
      DBの種類に依存しない(SQL文は書かない)
      対応DB:MySQL, PostgreSQL, SQLite, SQL Server, Oracle
      モデルの操作
      モデルの操作がDBの操作に対応(取り出し、保存、削除)
      値の取り出し:@member.birthday
      条件指定での検索:@member = Member.find_by_name(‘satou’)
      コントローラ  アクションパラメータ
    • Rails環境
      必須環境
      Ruby 1.8.5
      Rails 2.10
      RubyGems 1.3.1
      Apache 2.2
      MySQL 5.0
      注意事項
      Ruby 1.8.5は少し古いバージョン
      yumでは1.8.5が最新だが、1.8系は1.8.7まである
      1.8系と1.9系は言語仕様がだいぶ違う
    • 今回作るRailsアプリ
      今回の目標
      DBと連動したWebアプリケーション
    • Railsアプリの作成(1)
      1. プロジェクトを作ってみよう
      # rails プロジェクト名 –d mysql
      ※-dオプションはDBの指定(今回はmysql)
      ディレクトリの内容を確認
      app:アプリ、config:設定ファイル、db:DB定義
      public:コンテンツ置き場、script:サーバ、ジェネレータ
      2. マイグレーションでDBを作る
      # cd rails_test
      # ruby script/generate migration person
    • Railsアプリの作成(2)
      3. マイグレーションファイルを編集する
      # vi db/migrate/***.rb
      class Person < ActiveRecord::Migration
      defself.up
      create_table :people do |t|
      t.string :name
      t.integer :age
      t.timestamps
      end
      end
      defself.down
      drop_table :people
      end
      end
    • Railsアプリの作成(3)
      4. DBを作成する
      # vi config/database.yml
       ※DBの設定を確認する。必要ならスキーマ名を変更する。
      rakeコマンド:DB操作(作成、削除、マイグレーション)
      # rake db:create
      # rake db:migrate
      5. DBの内容を確認する
      # mysql –u root
      mysql> show databases;
      mysql> use project1_development;
      mysql> show talbes;
    • Railsアプリの作成(4)
      6. コントローラとビューを作る
      #ruby script/generate controller people
       ※controllerの指定でコントローラとビューが作成される
      7. モデルを作る
      # ruby script/generate model --no-migration
       ※オプションでマイグレーションしないを指定
    • Railsアプリの作成(5)
      8. コントローラを編集する
      # vi app/controllers/people_controller.rb
      DBの登録内容を表示するメソッドを作成
      class PeopleController < ApplicationController
      def index
      @people = Person.find(:all)
      respond_to do |format|
      format.html # index.html.erb
      format.xml { render :xml => @people }
      end
      end
      end
    • Railsアプリの作成(6)
      9. ビューを編集する
      # vi app/views/people/index.html.erb
      コントローラのindexメソッドに対応する画面表示
      <h1>Listing people</h1>
      <table>
      <tr>
      <th>Name</th>
      <th>Age</th>
      </tr>
      <% for person in @people %>
      <tr>
      <td><%=h person.name %></td>
      <td><%=h person.age %></td>
      </tr>
      <% end %>
      </table>
    • Railsアプリの作成(7)
      10. サーバを起動する
      # ruby script/server
      以下のURLにアクセスして動作を確認
      http://157.80.83.208:3000/
      http://157.80.83.208:3000/people/
    • Railsアプリの作成(8)
      これまでの手順はscaffoldで簡単にできる
      #ruby script/generate scaffold person name:stringage:integer
      # rake db:create
      # rake db:migrate
      サーバを起動する
      # ruby script/server
    • Rails開発のメリット
      アジャイル開発
      迅速かつ適応的なソフトウェア開発
      簡単にプロトタイプ開発を行い、適宜修正しながら進める
      プロジェクト管理
      プロジェクトのディレクトリにすべてが入っている
      プログラム、設定ファイル、ログ、DB定義、サーバ機能
      ディレクトリをSubversionで管理するだけでよい
      DB管理が容易
      スキーマのバージョン管理
      RakeコマンドによるDBのバージョンアップ/ロールバック
      他のDBへの切り替えが容易
    • 次回予告
      内容
      開発環境と実装、デバッグのポイント