会員登録

Ruby on Rails3系におけるアプリケーション作成手順について

この記事のポイント

  • Ruby on Railsを使えばMySQLと組み合わせたWebアプリケーションを素早く構築できる コントローラー・ビュー・モデルのMVC構造を実際の手順で体験することでRailsの仕組みが理解できる クラウド環境が主流の現代でも、Ruby on Railsはエンジニア志望の就活生に最適な入門フレームワーク
おすすめ

まずは無料で会員登録

Ruby on Rails系のインターンシップを探してみよう

RubyやRailsを使った実務経験が積めるエンジニアインターン求人を多数掲載中。

Ruby on Railsにはwebアプリケーションを迅速に実装するうえで、便利な機能がもりだくさんということで、今回はMySQLを使った場合のRailsにおけるプロジェクト作成方法の基本的な手順を記載します。コマンドの実行はすべて各プロジェクトのルート階層で行うようにしましょう。
Ruby on Rails入門 や Ruby on Rails入門 (全46回) の情報ソースを参考に簡単なアプリケーション作成手順を実際に行ってみました。

  1. MySQLを使うことを指定したうえでプロジェクトを作成します
    sudo rails new sample_view -d mysql
  2. /config/database.yml を設定。MySQLのユーザー名とパスワード名を設定します
  3. データベースを作成します
    sudo rake db:create

    うまくいかない場合には

    sudo bundle exec rake db:create

    も試してみてください。

  4. コントローラーを作成します。この場合にはtestsコントローラーを作成しています
    sudo rails generate controller tests
  5. /app/views/tests/ ができていることを確認してください
  6. モデルのひな形を作成します。/app/controllers/tests_controller.rb を以下のように修正します。ファイル名にtestsがついていることを意識しましょう。MVCモデルのフレームワークならではの命名規則ですね。
    class TestsController < ApplicationController
      def show
      end
    end
  7. /app/views/tests/ というフォルダがtestsコントローラーを作成した時点で作成されています。show.html.erb というファイル名でファイルを作成しましょう。6.のプロセスで先ほどshowアクションを定義しましたね。ファイル名の命名規則にしばりがあることに注意しましょう。
    <h1>テスト用テンプレートです</h1>
    <p>
    テンプレートによって作成された結果を表示させてみましょう。
    </p>
  8. ルーティングの設定を行います。/config/routes.rb を以下のように修正します
    SampleView::Application.routes.draw do
      get "tests/show"
    end
  9. 今回作成したプロジェクトのルート階層で sudo rails server を実行してみましょう。WeBrickが起動します
  10. http://localhost:3000/tests/show にアクセスしてみましょう。
    testsコントローラーに定義していたshowというアクションを実行することになります。アクションが呼び出され、アクションからテンプレートが呼び出されてHTMLページが作成され、利用者へ返されてブラウザへ表示されています。
  11. さらに最後にモデルを作成し、ビュー側でデータベースから取り出したデータを扱う場合の手順を確認しましょう。まずはRailsのマイグレーション機能を使ってサンプルデータを投入してみましょう。
    sudo rails new books -d mysql
    sudo vi /config/database.yml
    sudo rake db:migrate
    sudo rails generate model title name:string test_date:date
    sudo rake db:migrate

    テーブルがきちんと作成されているかを確認してください

    mysql> DESC titles;
    +------------+--------------+------+-----+---------+----------------+
    | Field      | Type         | Null | Key | Default | Extra          |
    +------------+--------------+------+-----+---------+----------------+
    | id         | int(11)      | NO   | PRI | NULL    | auto_increment |
    | name       | varchar(255) | YES  |     | NULL    |                |
    | test_date  | date         | YES  |     | NULL    |                |
    | created_at | datetime     | NO   |     | NULL    |                |
    | updated_at | datetime     | NO   |     | NULL    |                |
    +------------+--------------+------+-----+---------+----------------+
    5 rows in set (0.00 sec)
    sudo vi /db/seeds.rb

    以下のデータをseeds.rbに追記します

    # coding: utf-8
    Title.create(:name => 'a', :test_date => '2011-07-18')
    Title.create(:name => 'b', :test_date => '2011-10-14')
    sudo bundle exec rake db:seed

    テーブルにデータが格納されているかを確認してください

    mysql> SELECT * FROM titles;
    +----+------+------------+---------------------+---------------------+
    | id | name | test_date  | created_at          | updated_at          |
    +----+------+------------+---------------------+---------------------+
    |  1 | a    | 2011-07-18 | 2013-04-07 13:40:59 | 2013-04-07 13:40:59 |
    |  2 | b    | 2011-10-14 | 2013-04-07 13:40:59 | 2013-04-07 13:40:59 |
    +----+------+------------+---------------------+---------------------+
    2 rows in set (0.01 sec)
  12. データベースのデータをモデルを使って取得し、ビューに表示させてみましょう。まずsudo rails generate controller test でtestコントローラーを作成しましょう。/app/controllers/test_controller.rb が出来ていることを確認してください。
    以下のような形で test_controller.rb を修正してください。「Title」モデルの「all」メソッドはテーブルに含まれる全てのデータをモデルクラスのオブジェクトの配列として返します。今回は返された配列を変数「titles」に格納しています。

    class BooklistController < ApplicationController
      def test
        @titles = Title.all
      end
    end
  13. /app/views/test/test.html.erb を作成しましょう。testアクションを定義しているので、test.html.erbという名称のテンプレートファイルである必要があります
    <h1>モデルからビューへのデータの受け渡しについて確認してみましょう</h1>
    <p>
    <% @titles.each do |title| %>
      <%= title.name %>,<%= title.test_date %><br />
    <% end %>
    </p>
  14. ルーティングの設定を行います。/config/routes.rb に以下のルーティング設定を行います。ただし、今回のルーティング設定はresourcesを用いたルーティング設定を行うこととします。
    match 'test' => 'test#hello'
  15. sudo rails server を実行して、サーバを起動します。
    Ruby on Railsでは簡単にWebアプリケーションを作れるようになっています。クラウド環境やDockerを活用した開発が主流となった現在でも、Ruby on RailsはWebアプリケーション開発の入門として最適な選択肢のひとつです。ぜひ皆さんも一度試してはいかがでしょうか?Web上の情報ソースではRuby on Rails入門やRuby on Rails入門 (全46回)が参考になります。

    書籍に関しても紹介しておきます。
    レファレンス本として使うのであればこちら。
    Rails3レシピブック 190の技
    ストーリー形式になっている本であればこちら。
    RailsによるアジャイルWebアプリケーション開発 第4版

注目

実際の開発現場でRailsを学ぼう

TECH-BASEで成果物を作りながらスキルアップ

Ruby on Railsを使った実践的な開発インターンで、就活に活かせるポートフォリオを作成できます。
編集後記

編集後記

手を動かしながらMVCの流れを体験できるRailsは、エンジニアとしての第一歩を踏み出すのに最適なフレームワークです。
インターンシップでも実際にRailsを使う現場は多いので、ぜひこの手順を参考にして事前準備を整えておきましょう。

エンジニア就活 編集部

編集者

エンジニア就活 編集部

ITエンジニアを目指す就活生に向けて、求人情報・選考ノウハウ・業界研究など実践的なコンテンツを届けています。
就活生の疑問や不安に寄り添いながら、日々コンテンツを更新しています。

オススメ記事一覧

  • 言語、フレームワーク、DB、OS、ブラウザなど11分類110種まとめ

    言語、フレームワーク、DB、OS、ブラウザなど11分類110種まとめ

    詳しく見る
  • Rails3系で開発する際においておさえておきたい10個の要点を列挙してみました

    Rails3系で開発する際においておさえておきたい10個の要点を列挙してみました

    詳しく見る
  • エンジニア向けWebサービスを使ってみました

    エンジニア向けWebサービスを使ってみました

    詳しく見る
  • データベースを使ったWebサイト制作に挑戦してみよう

    データベースを使ったWebサイト制作に挑戦してみよう

    詳しく見る
  • IT企業における有給インターンを通じて、プロジェクトマネジメントについて学ぼう

    IT企業における有給インターンを通じて、プロジェクトマネジメントについて学ぼう

    詳しく見る
  • iPhoneアプリの4つの作り方を知ろう

    iPhoneアプリの4つの作り方を知ろう

    詳しく見る
  • Webサービスを作りたいあなたが真っ先に行うべき3つのこと

    Webサービスを作りたいあなたが真っ先に行うべき3つのこと

    詳しく見る
  • iPhoneアプリ・Androidアプリを作るうえで初心者が気をつけるべきこと

    iPhoneアプリ・Androidアプリを作るうえで初心者が気をつけるべきこと

    詳しく見る
もっと見る
完全無料!

1で登録完了!

エンジニアの仕事・年収や選考ノウハウ記事が読めるほか、
会員にはプログラミング講習やES・面接対策などリアルな無料サポートも充実。
ここだけの求人情報も多数。

会員登録はこちら(無料)

エンジニア就活に登録して
ワンランク上の就活を始めよう!

「エンジニア就活」に会員登録をすると、求人情報への応募ができるほか、便利な機能や就職、就活支援サービスを利用することができます。

登録はこちらから