Contents
導入
Ruby on RailsはRubyを利用したWebアプリケーションをフレームワークです。
少ないコードでWebアプリケーションを作れることから人気を獲得し他の多くのフレームワークに影響を与えたほか、Rubyを人気のプログラミング言語の一つに押し上げる要因の一つとなりました。
現在でも人気のフレームワークの一つで、2016年6月にVer5.0もリリースされたのでRailsのアプリケーションをインストールして起動するまでを試してみました。
実行環境
- ubuntu16.04LTS
- Ruby 2.3.1
- Ruby on Rails 5.0.0.1
事前準備
Ruby
RailsはRuby用のフレームワークなので実行環境にRubyがインストールされている必要があります。
Rubyのインストールに関しては以前にとりあげたのでここでは扱いませんが、Rails5.0はRuby2.2.2以上に対応となっているため比較的新しいバージョンのRubyを用意する必要があります。
# Rubyのバージョンの確認 ruby -v ruby 2.3.1
Rubyのインストール
rbenvでRubyのバージョンを管理する
Ruby on Rails
Ruby on RailsはRubyGemsからインストールします。
今回はubuntuで実行しましたがMacOSなどでも基本的な手順は変わらないと思います。
インストール
$ gem install rails $ rails --version Rails 5.0.0.1
Railsプロジェクトのビルド
Railsのgemをインストールした後はターミナルからrails newコマンドを実行する事でRailsのアプリケーションを作成してくれます。
# rails new [app_name] $ rails new my_app create create README.md create Rakefile ...
コマンドを実行してからしばらくするとアプリのビルドが完了しディレクトリ内に指定した名前のアプリが作成されているはずです。
Railsアプリの開発
Railsアプリのビルドが完了したので動作の確認をしていきます。
RailsはWebアプリケーションのフレームワークなので作ったアプリを実際に公開する際にはWebサーバーやデーターベースなどを準備する必要がありますが、開発段階では組み込みのWebサーバーとSQLite3によるデーターベースがRailsとgemによって最初から用意されているのでアプリケーションをビルドするだけですぐに開発を始める事が出来ます。
ビルドインサーバー
Railsの組み込みのサーバーはアプリのrootディレクトリからrails serverコマンドで実行します。
cd my_app $ rails server
サーバーはデフォルトではhttp://localhost:3000で起動されるので、ブラウザからアクセスすればRailsアプリのトップページが表示されます。

またサーバー起動時にオプションをつける事によって任意のポートでサーバーを起動させる事も出来ます。
# http://localhost:4000でサーバーを起動 $ rails server -p 4000
組み込みサーバーを起動させた状態でアプリ内のソースコードを変更するとサーバーのデータも自動的に更新されるため、ブラウザから実際の状態を確認をしながらRailsアプリの開発を行うことが出来ます。
サーバーの終了は起動中のターミナルからCtrl-Cを押します。
データーベース
Railsアプリ内のGemfileを確認するとわかりますがRailsプロジェクトの開発&テスト用のデーターベースにはSQLite3が指定されています。
SQLiteはMySQL等と違い独立した一つのファイルでデーターベースを管理するため、事前に設定をしなくともRailsのアプリケーションからデーターベースを扱う事が出来ます。
... group :development, :test do gem 'byebug', platform: :mri gem 'sqlite3' end ...
scaffold
実際にSQLiteのデーターベースがRailsから操作出来るかscaffoldを使って確認してみます。
scafflodはモデルやビューなどのアプリに必要なソースコードの作成やルーティングの設定などを自動で行ってくれるコマンドです。
$ rails generate scaffold Bookmark title:string address:text description:text
scaffoldを実行するとmy_app/db/migrate/にマイグレーションファイルが作成されるので、このファイルを使ってマイグレーションを実行します。マイグレーションを行うことでSQLのコマンド操作を行わなくてもRailsを通してデータベースの作成・編集などを行うことが出来ます。
# マイグレーションの実行 $ bundle exec rake db:migrate
マイグレーションを実行した事でBookmarksのデータベースが作成されているはずなので、Railsから操作出来るか確認してみます。
scaffoldによってBookmarksのビューも作成されているので、組み込みサーバーを立ち上げhttp://localhost:3000/bookmakrs/newに接続するとブックマークの新規登録画面が表示されます。

このページから必要事項を入力して「Create Bookmarks」をクリックすると新たなブックマークがデーターベースに登録されます。

登録されたブックマークの一覧は/bookmarks/によって確認出来ます。

Rails console
ブラウザを通してアプリケーションからのデーターベース接続を確認しましたがRailsのコンソール機能を使う事も出来ます。
ターミナルからrails consoleと入力することでターミナルが待機状態になり、対話形式でRailsを読み込んだRubyが実行出来ます。
$ rails console irb(main):001:0>
このコンソールからBookmark.allと入力すると先ほどブラウザを通して追加された値が表示され、データーベースに保存されている事が確認出来ます。
irb(main):001:0> Bookmark.all Bookmark Load (1.6ms) SELECT "bookmarks".* FROM "bookmarks" => #<ActiveRecord::Relation [#<Bookmark id: 1, title: "google", address: "http://google.com", description: "Goolge is Search engine.", created_at: "2016-11-16 05:01:16", updated_at: "2016-11-16 05:01:16">]>
Railsのコンソールを終了にはコンソールにexitと入力します。
あとがき
RailsはWebアプリのフレームワークの普及のきっかけとなっただけあって完成度が高いです。
セットアップの手順を見てもRubyさえあればgemからインストールして組み込みのサーバーを立ち上げるだけで特に設定の必要なく開発を始める事が出来てしまいます。
CakePHPやLaravelなどでもComposerによるインストールやVagrantを利用した開発環境などが整備されてセットアップしやすくなっていますが、実際に試してみるとRailsの扱いやすさはそれらよりも頭一つ抜けていると感じます。
実際のデプロイになるとRubyとPHPの違いもあって逆に少し苦労する部分もあったりしますが、初心者には環境構築が最初の壁だと言われているので、その段階でつまづいた人はRailsを試してみると上手くいくんじゃないかと思います。