トップページ -> インストール,設定,利用 -> 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'
      

      [image]

      ■ パターン2

      root :to => 'welcome#index'
      

      [image]
  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
    

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

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

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

    ■ Linux での実行例

    cd hoge
    more config/database.yml
    

    [image]
  3. 確認

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

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

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

      http://localhost:3000

      [image]
    3. Rails サーバの停止

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

      [image]

コントローラの作成

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

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

    [image]
  3. public/index.html を削除
  4. config/routes.rb を次のように編集し、welcome/index.html.erb を使うように設定

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

    ■ パターン1

    cd hoge
    root 'welcome#index'
    

    [image]

    ■ パターン2

    cd hoge
    root :to=>'welcome#index'
    
  5. config/routes.rb の設定確認

    「rake routes」で確認する.

    rake routes
    

    [image]

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

前もって決めておく事項

rails generate scaffold の実行

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

    cd hoge
    

    [image]
  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
    

    [image]

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

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

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

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

    [image]
  4. 「rake routes」で確認
    rake routes
    

    [image]

    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
      

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

      config/application.rb の編集

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

      [image]
    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
      

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

      rake db:create:all
      

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

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

      rake db:migrate
      

      [image]

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

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

      cd hoge
      

      [image]
    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 コマンドの確認

    本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

    問い合わせ先: 金子邦彦(かねこ くにひこ) [image]