webサイトの制作について
これから行うWebサイトの制作では、基本的にMVCのCであるControllerの作成と、VであるViewの作成を行います。Webアプリケーション(動的)ではなく、Webサイト(静的)を制作するという意図としては、まずRuby on Railsのお作法や作業手順を学んで頂くことに重点を置きたいからです。
本項からそのお作法や作業手順を学習していきます。
ControllerとActionの作成
Railsでは静的なWebサイトを作成する上で、最低限ControllerとViewが必要になります。
※Actionとは、Viewを表示するためのメソッドのことです。詳細は後述します。
Controllerを作成する前に、config/initializersディレクトリの配下にファイルを新規作成 し、下記コードを記述してください。※現時点ではそのまま写していただいて問題ありません。
Rails.application.config.generators do |g|
g.helper false # helperクラスを生成しない
g.assets false # CSSとJSを生成しない
g.skip_routes true # ルーティングを変更しない
g.test_framework false # テストスクリプトを生成しない
end
コメント部分にも記述されていますが、generate.rbを作成することでControllerクラスを作成する際に、不要なファイルが自動生成されるのを防ぎます。
Ruby on Railsにおける自動生成機能は大変便利なのですが、初めて触れる方にとっては逆に理解の妨げになってしまうためです。
上記のファイルを追加した後に、
$ rails server -b 0.0.0.0 -p 8080
を実行してください。ファイルを追加する際に文法エラーやファイル名の不正等があった場合に正常にコマンドが実行できないので、上記コマンドはエラーの確認にもなります。
正常に動作していたらCtrl+Cで動作を終了させて下さい。エラーが出ていた場合、記述内容やファイル名、ファイルの配置場所を再度確認して下さい。
エラーになった際の画面
エラーになった際は、上の図のようにエラーの箇所と内容、その他にずらずらとエラーメッセージが表示されます。上の図だと、generate.rbの2行目にsyntaxerrorというエラーが出ていることがわかります。
※syntaxerrorは文法エラーを意味します。
続いて、ControllerクラスとActionを作成していきます。
Controllerクラスを作成するには、下記のコマンドを実行します。
$ rails generate controller top index
上記のコマンドは、indexというActionを持つ、topという名前のControllerクラスを生成するという意味になります。
実行結果
実行した結果、上の図のように表示され、2つのファイルがappの配下に作成されたことがわかります。
・app/controller/top_controller.rb
・app/views/top/index.html.erb
top_controller.rbの内容
index.html.erbの内容
■erb とは
テキストに対してrubyのコードを埋め込む際に使用する記法です。
後述しますが、html.erbファイルに対して<% 〜 %> と記述することで〜の部分のrubyで記述されたコードをViewで実行することができます。
上の図のように、作成されたtop_controller.rbの内容を確認すると、
class TopController < ApplicationControllerと記載されています。
これは、ApplicationControllerを継承したTopControllerクラスであることを意味します。
継承については、ここでは解説しませんが、ApplicationControllerの内容を引き継いでいるという理解で大丈夫です。
top_controller.rbと同じディレクトリにapplication_controller.rbというファイルが存在するので、そのファイルの内容を引き継いでいるという意味になります。
また、defindexと2行目に記述されていますが、これはメソッド になります。
Controllerに記述する、画面表示用のメソッドのことをRuby on RailsではAction と呼びます。(呼称が異なるだけで、Rubyにおけるメソッドと同じです。)
■Controller とActionの作成
[code gutter="false"]$ rails generate controller xxx yyy[/code]
・上記コマンドは、yyyというActionを持つ、xxxという名前のControllerを作成するという意味になります。
・Controller内の、画面表示用のメソッドはActionと呼ぶ
未経験でも、現役エンジニアの手厚い指導が受けられるCodeCampのレッスン【無料カウンセリング】とは? 【CodeCampの無料カウンセリング】で知ることができる内容 自分にあったプログラミング言語とは? 初心者のための挫折しない 学習の進め方
独学よりも速く、確実に プログラミングを習得する方法
満足度97.1%、現役エンジニアのマンツーマンレッスンとは?
CodeCampがプログラミング初心者から選ばれる理由
未経験からエンジニア転職・フリーランスとして活躍するステップ
開催時間:毎日9時〜21時迄(所要時間40分) PCとインターネットがあれば、日本全国どこからでも受講できます
CodeCampで学習できる言語・技術 関連記事