0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rialsについてのまとめ

Posted at

はじめに

こんにちは、jjj0331です。
Rialsの学習を始めて3か月ほど経過したので、
これまで学習してきたことをまとめようと思います。

環境構築について

RailsをローカルPCで準備するためには
・Rubyのインストール
・SQLiteのインストール
・Railsのインストール(gem install rails)
 →Railsのインストールが成功すれば:「rails -v」でVersion確認

Appの作成方法と、サーバー起動方法

rails new myapp
myappというファルダーが作成されていれば成功
rails server
ブラウザで http://localhost:3000 にアクセスし、Railsのウェルカムページが表示されれば、環境構築は成功です。

myappの各フォルダーの役割

・app:「Controller」,「view」ファルダーが存在し、アプリの中心になるフォルダー
・config:「router.rb」というファイルが重要な役割があり、Appのルーティングを設定する
・db:データベースのデータとmigrateファイルが保存されており、これも重量なファイルとなる

config/router.rbについて

改めて、RailsはWebアプリケーションを開発するためのフレームワークであり、ルーティング設定が必要です。例えば、「http://google.com/」
というURLをブラウザに打ち込むとGoogleの検索画面に遷移するように、開発するアプリケーションでも特定のURLに対して特定の画面に遷移する設計が必要です。この設計を担っているのが「routes.rb」です。

routes.rb
Rails.application.routes.draw do
  get "/jjj0331", to: "test#index"
end

解説:「http://localhost:3000/jjj0331」
というURLに対してGetリクエストが来た場合、「test」コントローラクラスのindexメソッドを実行する。

 準備編:「test」コントローラクラスとは

コントローラクラスを説明する前に、実際にコントローラクラスを作成してみましょう。

以下の手順で
appファルダーの直下のcontrollerに「test_controller.rb」が作成されます。

cd myappでmyappファルダーに移動済みであることを想定
rails generate controller Test index

以下のようなLogが出力されれば成功です

create  app/controllers/test_controller.rb
invoke  erb
create    app/views/test
create    app/views/test/index.html.erb
....(省略)

ここで重要なのが、
「test_controller.rb」とは別に「app/views/test/index.html.erb」が作成されていることです。

解説編:「test」コントローラクラスとは

では、app/controllers/test_controller.rbを開いてみましょう

test_controller.rb
class TestController < ApplicationController
  def index
  end
end

ApplicationControllerクラスを継承している「TestController」には、
indexメソッドがあるがこのメソッドの役割こそが画面の遷移先を指定するメソッドとなる。

まとめると
router.rbで「http://localhost:3000/jjj0331」
というURLが来た際に、testにあるindexメソッドを実行してと決める。

testコントローラクラスのindexメソッドでは、表示する画面を決める(レンダリング先を決める)。

http://localhost:3000/jjj0331にリクエストがあった場合、
indexメソッドが実行されて
  def index
      (本来であれば様々な処理が実行され)
      render 'AAA'
      (→すべての処理が終了後、AAAという画面を表示してという意味)
  end

では、

  def index
  end

は何も記載されていないが「表示する画面」っていうのは?と疑問が生じると思うが、
これはRailsのデフォルトの処理で、
「app/views/test/index.html.erb」がレンダリング先となる。

つまり

app/views/test/index.html.erb
<h1>Hello, Rails!</h1>

みたいに、「index.html.erb」に追記すると

Railsが起動した状態(rails server)後にブラウザに対して、
http://localhost:3000/jjj0331」を入力すると
Hello,Railsが表示されるようになる。

まとめ

今回はRailsの環境構築から、静的アプリの作成方法について解説しました。次回はモデルしようしてDBにデータを保存する方法などを記事にしたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?