k01ken’s b10g

He110 W0r1d!

Railsで簡単なアプリケーションを作る

開発環境はWindows 7 Professional(32bit)+Ruby 2.3.3p222+Rails 4.2.1。

WindowsでRuby on Railsを導入するまでの手順 - k01ken’s b10g
前回の続きです。

簡単なアプリケーションといってもトップページを修正するぐらいです。

1.まず、開発用のフォルダをCドライブ直下に作る。railsとする。

2.コマンドプロンプトを実行し、カレントディレクトリを、C:\railsにします。Railsでアプリケーションを作成するためには、モデルやコントローラの作成、サーバーの起動などにrailsコマンドを使います。
アプリケーションを作成するためにはコマンドプロンプト上でrails new 作成するアプリケーション名と入力して作成します。
とりあえず、以下のコマンドを入力して作成。
rails new app --skip-bundle
railsフォルダ内に、appフォルダが作成され、中に、いくつかのファイルができたと思います。

3.コマンドプロンプトでカレントディレクトリをappフォルダに指定して、bundle installと入力してください。bundleとは、Gemパッケージの管理とインストールを行うためのツールです。
Railsアプリケーションでは、たくさんのGemパッケージを必要としますが、複数の開発者が共同で開発を進めるときに、開発者同士で同じバージョンのGemパッケージを用意しなければならないと不都合なので(開発用パソコンと本番サーバーの間でも同様)、Bundlerは、必要なGemパッケージをリストアップし、複数のコンピュータ間で簡単に同期が取れるようにするものです。(作ったアプリとGemfile.lockを渡し、受け取った側は受け取ったアプリ内でbundle installを行う)

rails new 作成するアプリケーション名と入力すれば、自動的に、bundle installが実行されます。説明するために、さっきはスキップするオプションを追加しました。

4.作成したアプリケーションを起動してみたいと思います。
コマンドプロンプトで、
ruby bin/rails s
と入力して、サーバーを起動して、Webブラウザでhttp://127.0.0.1:3000/または、http://localhost:3000/のURLにアクセスしてください。
f:id:k01ken:20171231030205p:plain
上記のようなページが表示されたら成功です。

[注意]これから、.erbや.rbなどのファイルを保存する際の文字コードUTF-8UTF-8Nで保存してください。(自分の場合は、TeraPadを使っていて、保存すると自動的にUTF-8Nで保存されるようにしています)

5.コントローラを作成
コントローラの作成にはruby bin/rails gコマンドで作成します。ruby bin/rails g controller コントローラ名 アクション名(アクション名の部分は省略して後から定義しても構いません)で、コントローラとアクションを作成できます。ここでは、TopControllerとindexアクションを作成します。
ruby bin/rails g controller top index
と入力したらapp/controllersにtop_controller.rbが作成されたと思います。

6.ルーティングの設定
config/routes.rbを開き、Rails.application.routes.draw doendの間の記述をすべて削除して、

root "top#index"

と書き直します。これによって、トップページにアクセスすると、views/top/index.html.erb内の内容が表示されます。
f:id:k01ken:20171231033125p:plain

7.ビューの作成
次は、indexアクションに対応したビューを編集してみます。
app/views/top/index.html.erbを開き、中身を

<h1>こんにちは</h1>
<p>トップページが表示されました</p>

に書き換えてください。そして、もう1度、トップページにアクセスすると、
f:id:k01ken:20171231033450p:plain
と修正されたと思います。

8.変数を使う
controllers/top_controller.rb内を以下のように修正。

class TopController < ApplicationController
  def index
	@message = "変数です" # ここを追加
  end
end

views/top/index.html.erb内を以下のように修正

<h1>こんにちは</h1>
<p>トップページが表示されました</p>
<p><%= @message %></p>

indexアクション内の変数が、表示されたと思います。
f:id:k01ken:20171231035008p:plain