トップページ -> コンピュータ実習 -> Ruby による Web/データベース・プログラミング -> Ruby on Rails バージョン 3 で Redis を使ってみる(書きかけ)
[サイトマップへ], [サイト内検索へ],

Ruby on Rails バージョン 3 で Redis を使ってみる

サイト構成 連絡先,業績など コンピュータ実習 データの扱い コンピュータ設定 教材(公開) サポートページ

Ruby on Rails バージョン 3 を使ってみる.

【関係するディレクトリとファイル(主要なもの)】

この Web ページで行うこと

  1. Rails アプリケーションのディレクトリと基本ファイルの生成
    cd <全体のルートディレクトリ>
    rails new hoge
    

  2. (オプション) Gemfile の調整

    「gem 'rails', '=3.2.1'」の行を 「gem 'rails', '=3.2.13'」に変更

    gem 'execjs'
    gem 'therubyracer'
    

  3. コントローラの作成
    1. rails generate controller の実行
      cd hoge
      rails generate controller welcome index
      

    2. 上の操作の後,app/views/welcome/index.html.erb を編集

    3. public/index.html を削除
      rm public/index.html 
      

    4. config/routes.rb を次のように編集し、welcome/index.html.erb を使うように設定

      元々の config/routes.rb の記述に従って編集する。

      ■ パターン1

      root 'welcome#index'
      

      ■ パターン2

      root :to => 'welcome#index'
      

  4. Rails アプリケーションのひな形 (scaffold アプリケーション) の生成
    cd hoge
    rails generate scaffold order_record year:integer month:integer day:integer customer_name:text product_name:text unit_price:float qty:integer created_at:timestamp updated_at:timestamp
    

  5. (オプション) マイグレーション・ファイルでのテーブル定義に制約を追加

    ファイル db/migrate/<タイムスタンプ>_create_order_records.rb を編集する

    SQLite3 でのマイグレーション・ファイルの設定例:

    class CreateOrderRecords < ActiveRecord::Migration
      def change
        create_table :order_records do |t|
          t.integer :year,	        :null => false
          t.integer :month,	        :null => false
          t.integer :day,	        :null => false
          t.text :customer_name,	:null => false
          t.text :product_name,	:null => false
          t.float :unit_price,	:null => false
          t.integer :qty,	        :null => false, :default => 1
          t.timestamp :created_at,  :null => false
          t.timestamp :updated_at
    
          t.timestamps
        end
      end
    end
    

  6. リレーショナルデータベースの作成
    rake db:create:all
    rake db:migrate
    

  7. Rails サーバの起動
    rails server
    

  8. 動作確認

    http://localhost:3000/order_records


事前準備

  1. Ruby 処理系のインストールと, RubyGems のインストールが済んでいること

  2. JRuby を使う場合に限り,「Java SE Development Kit」のインストールが済んでいること.

  3. gem を使って Rails 関連パッケージのインストールが終わっていること
    gem install rails 
    gem install thin
    gem install exexjs
    gem install therubyracer
    gem install sqlite3
    

前もって決めておく事項


Rails アプリケーションのディレクトリと基本ファイルの生成

  1. rails コマンド による Rails アプリケーションのディレクトリと基本ファイルの生成

    rails バージョン 3 の場合の例

    cd <全体のルートディレクトリ>
    rails new hoge
    


  2. (オプション)データベース設定ファイル config/database.yml の確認

    SQLite 3を使うように設定していることが分かる.

    データベース名も確認できる.

    ■ Linux での実行例

    cd hoge
    more config/database.yml
    

  3. 確認

    Rails サーバを起動し、動作を確認する

    1. Rails サーバの起動
      cd hoge
      rails server 
      

    2. Web ブラウザから使ってみる

      http://localhost:3000

    3. Rails サーバの停止

      Rails サーバを起動した端末で「コントロールキー」と「c」の同時押し


コントローラの作成

  1. rails generate controller の実行
    cd hoge
    rails generate controller welcome index
    

  2. 上の操作の後,app/views/welcome/index.html.erb を編集

  3. public/index.html を削除

  4. config/routes.rb を次のように編集し、welcome/index.html.erb を使うように設定

    元々の config/routes.rb の記述に従って編集する。

    ■ パターン1

    cd hoge
    root 'welcome#index'
    

    ■ パターン2

    cd hoge
    root :to=>'welcome#index'
    

  5. config/routes.rb の設定確認

    「rake routes」で確認する.

    rake routes
    


Rails アプリケーションのひな形 (scaffold アプリケーション) の生成

前もって決めておく事項

rails generate scaffold の実行

  1. 先ほど生成した Rails アプリケーションのルートディレクトリに,カレントディレクトリを変更

    cd hoge
    

  2. (オプション) bundle install の実行

    実行例

    bundle install 
    

  3. rails generate scaffold order_record ...」を実行し、アプリケーションのひな形を生成する

    rails generate scaffold order_record year:integer month:integer day:integer customer_name:text product_name:text unit_price:float qty:integer created_at:timestamp updated_at:timestamp
    

    【ここで試している設定の要点】

    Rails で使えるデータ型は次の通り

    データ型の詳細については,別の Web ページで説明する.

    ※ execjs を使っている場合,次のようなエラーが出る場合があります.このときは、node.js などをインストールすることで回避できる場合があります. 詳しくは、 https://github.com/sstephenson/execjs

  4. 「rake routes」で確認
    rake routes
    


redis-rails を使うように設定

https://github.com/jodosha/redis-store/tree/master/redis-rails

  1. gem を使って redis-rails をインストール

    gem instal redis
    gem instal redis-store
    gem instal redis-rails
    

  2. Redis をキャッシュとして使う設定(例)

    config/application.rb の編集

    config.cache_store = :redis_store, "redis://localhost:6379/0/cache", { expires_in: 90.minutes }
    

  3. (オプション)Redis をバックエンドとして使う設定

    config/initializers/session_store.rb の編集

    MyApplication::Application.config.session_store :redis_store
    

リレーショナルデータベースの作成

  1. Gemfile の設定 次の3行を書き加える
    gem 'redis'
    gem 'redis-store'
    gem 'redis-rails'
    

  2. 先ほど生成した Rails アプリケーションのルートディレクトリに,カレントディレクトリを変更

    cd hoge
    

  3. (オプション)rake で実行可能なタスク一覧の表示

    rake -T
    

  4. データベース・マイグレーションの実行によるデータベースの生成

    rake db:create:all
    

  5. マイグレーション・ファイルと rake コマンドを用いたマイグレーションの実行

    メッセージから,新しいテーブルが定義されたことが分かります.

    rake db:migrate
    


Rails サーバの起動と動作確認

  1. 先ほど生成した Rails アプリケーションのルートディレクトリに,カレントディレクトリを変更

    cd hoge
    

  2. Rails サーバの起動

    rails server
    

    WEBrick が起動していることが確認できます.ポート番号が 3000 であることも確認できます.

  3. Rails サーバと通信できることのテスト

    Web ブラウザで http://127.0.0.1:3000 を指定します.

    この Web ページの「コントローラの作成」の手順を踏んでいた場合には, Rails サーバと通信して,welcome/index.html.erb が次のように表示される

  4. Ctrl + 「c」 による Rails サーバの終了

    Ctrl + 「c」(コントロールキーと「c」キーの同時押し)で,Rails サーバが終了します.

  5. Rails コマンドの確認