この記事のポイント
- Ruby on Railsを使えばMySQLと組み合わせたWebアプリケーションを素早く構築できる コントローラー・ビュー・モデルのMVC構造を実際の手順で体験することでRailsの仕組みが理解できる クラウド環境が主流の現代でも、Ruby on Railsはエンジニア志望の就活生に最適な入門フレームワーク
まずは無料で会員登録
Ruby on Rails系のインターンシップを探してみよう
Ruby on Railsにはwebアプリケーションを迅速に実装するうえで、便利な機能がもりだくさんということで、今回はMySQLを使った場合のRailsにおけるプロジェクト作成方法の基本的な手順を記載します。コマンドの実行はすべて各プロジェクトのルート階層で行うようにしましょう。
Ruby on Rails入門 や Ruby on Rails入門 (全46回) の情報ソースを参考に簡単なアプリケーション作成手順を実際に行ってみました。
- MySQLを使うことを指定したうえでプロジェクトを作成します
sudo rails new sample_view -d mysql - /config/database.yml を設定。MySQLのユーザー名とパスワード名を設定します
- データベースを作成します
sudo rake db:createうまくいかない場合には
sudo bundle exec rake db:createも試してみてください。
- コントローラーを作成します。この場合にはtestsコントローラーを作成しています
sudo rails generate controller tests - /app/views/tests/ ができていることを確認してください
- モデルのひな形を作成します。/app/controllers/tests_controller.rb を以下のように修正します。ファイル名にtestsがついていることを意識しましょう。MVCモデルのフレームワークならではの命名規則ですね。
class TestsController < ApplicationController def show end end - /app/views/tests/ というフォルダがtestsコントローラーを作成した時点で作成されています。show.html.erb というファイル名でファイルを作成しましょう。6.のプロセスで先ほどshowアクションを定義しましたね。ファイル名の命名規則にしばりがあることに注意しましょう。
<h1>テスト用テンプレートです</h1> <p> テンプレートによって作成された結果を表示させてみましょう。 </p> - ルーティングの設定を行います。/config/routes.rb を以下のように修正します
SampleView::Application.routes.draw do get "tests/show" end - 今回作成したプロジェクトのルート階層で sudo rails server を実行してみましょう。WeBrickが起動します
- http://localhost:3000/tests/show にアクセスしてみましょう。
testsコントローラーに定義していたshowというアクションを実行することになります。アクションが呼び出され、アクションからテンプレートが呼び出されてHTMLページが作成され、利用者へ返されてブラウザへ表示されています。 - さらに最後にモデルを作成し、ビュー側でデータベースから取り出したデータを扱う場合の手順を確認しましょう。まずは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) - データベースのデータをモデルを使って取得し、ビューに表示させてみましょう。まず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 - /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> - ルーティングの設定を行います。/config/routes.rb に以下のルーティング設定を行います。ただし、今回のルーティング設定はresourcesを用いたルーティング設定を行うこととします。
match 'test' => 'test#hello' - 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で成果物を作りながらスキルアップ
編集後記
手を動かしながらMVCの流れを体験できるRailsは、エンジニアとしての第一歩を踏み出すのに最適なフレームワークです。
インターンシップでも実際にRailsを使う現場は多いので、ぜひこの手順を参考にして事前準備を整えておきましょう。
編集者
エンジニア就活 編集部
ITエンジニアを目指す就活生に向けて、求人情報・選考ノウハウ・業界研究など実践的なコンテンツを届けています。
就活生の疑問や不安に寄り添いながら、日々コンテンツを更新しています。



