Railsでアプリケーションを作成して、コントローラとアクションを追加するメモ。
- 環境
- OS X El Capitan
- Ruby 2.2.3
- Rails 4.2.3
Railsアプリケーションを作成
hogeアプリケーションを作りディレクトリに移動する。
$ rails new hoge $ cd hoge
コントローラを作成
fooという名前のコントローラを作成する。
$ bin/rails generator controller foo
generatorはgとしても良い。
$ bin/rails g controller foo
また同時にアクションを作成する事もでき、ここではbarというアクションを作成する。コントローラにアクションが追加され対応するbar.html.erbテンプレートファイルが自動的に作成される。
$ bin/rails g controller foo bar
アクションを追加
作成されたコントローラクラスのソースファイルはapp/controllersディレクトリにfoo_controller.rbという名前で作成されるので、これを開きindexアクションを追加する。
アクションは単なるメソッドなのでFooControllerクラスのindexメソッドという形でFooコントローラーのindexアクションとなる。
$ vim app/controllers/foo_controller.rb
class FooController < ApplicationController def index @message = "Hello World!" end end
作成したコントローラーに対応するビューはapp/viewsディレクトリにあるコントローラー名のディレクトリとなる。この場合はapp/views/fooディレクトリを作成して、その中にアクションに対応するテンプレートファイルを作成する。テンプレートファイル内ではindexメソッドで作成した@message変数の値を表示してみる。
$ vim app/views/foo/index.html.erb
<h1>Foo#index</h1> <p><%= @message %></p>
ルーティングを設定
コントローラ、アクション、ビューが作成されたが、ユーザのアクセスで実行されなければ意味がないのでルーティングの設定をする。ここではルートディレクトリへのアクセスで、fooコントローラのindexアクションが実行されるようにする。
$ vim config/routes.rb
Rails.application.routes.draw do root "foo#index" end
アクセスしてみる
作成したアプリケーションを実行する。
$ bin/rails s
ブラウザでhttp://localhost:3000にアクセスする。
hogeというRailsアプリケーションの、fooコントローラのindexアクションが実行された。
コメント