JP Coders

Published on

「controller」ーRailsはどうページを表示するのか

僕は、Railsを使っているのですが、Railsはどういうふうにページを表示するのか、ということについて、簡単に説明します。

まず、Railsは、MVCという設計パターンを採用しています。

これは、Model, View, Controllerの略で、それぞれ、データベース、表示、処理を担当します。

今回は、Viewについて説明します。 Viewは、HTMLを生成する部分です。

では、実際にどういうふうにページを表示するのか、ということについて、簡単に説明します。

解説

// config/routes.rb
get 'userinfo/index'

まず、これがどういう意味かというと、userinfo/index、もっというと、http://localhost:3000/userinfo/index にアクセスすると反応するよって意味なのですが、このURLに表示されるのは、色々なスクリプトのフィルターを通して出来たものになります。

// app/controllers/userinfo_controller.rb
def index
  @var = 'hello.'
end

例えば、そのURLにページが表示される前に、アクションと呼ばれるものを適用します。 このアクションをまとめて、コントローラーと言うみたいです。

ではこのアクションに何を書くかと言うと、いわゆるRubyスクリプトを書くところです。 プログラムを書くところですね。 普段ローカルで作業する際には、1つのプロジェクトやツールを作る際に、それなりにコードをかくと思います。 そういったRubyコードを、このアクションに書きます。

そうしてコードから最終的に出力されたデータ、欲しかったデータを、何らかのインスタンス変数に入れておきます。

あとで説明する、データベース…ここではモデルといいますが、このモデルの操作をするのもここでやります。というかやるべき、っていうだけです。そっちのほうが分かりやすい・読みやすいから、らしいです。

// app/views/userinfo/index.html.erb
<h1>Userinfo#index</h1>
<p>Find me in app/views/userinfo/index.html.erb</p>
<%= @var %>

そうして、最後に、URLはこのファイルを通過します。 このファイルはERBファイルという、特殊なHTMLファイルです。

このファイルがほぼそのまま、ウェブページ、つまり、1番最初に出てきたuserinfo/indexに表示されます。

ここでは、さっきアクションでさり気なく定義していた、@varを、HTMLの中にテキストとして出力するようにしています。

で、ここまでの作業は手動でやるのか、というと、ここがRailsの使い所で、

rails g controller USERINFO index

このコマンド1つで、フォルダ・ファイル・コードを作成してくれます。

上の例で、違うところは、僕が追記する形で書き加えた、@var = 'hello.'のみです。

Authors
  • avatar
  • Name
  • 情報技術者 / Z世代プログラマー / 米大学院にてデータサイエンスを学ぶ

  • ITプロフェッショナルとして活動しています。React.js等のモダンなウェブ制作・アプリ開発を得意としており、Java・Python・Rust等のプログラミング言語を用いたソフトウェア開発全般を行っています。

お手伝いできますか? 🤝

他の方法でのご連絡をご希望ですか?
web制作ご依頼受付中

本記事で掲載している情報やコードは執筆時点のものであり、動作を保証するものではありません。 自己責任のもと、プログラムの実行や情報の利用にあたってはご注意ください。


本記事には提携する企業の広告が含まれる場合があります。