🍳

Ruby on Rails プログラミング

2023/02/15に公開2

フォルダ構成について

helloプロジェクトで作成されたフォルダ構成について

たくさんのファイルやフォルダができているが、
まず入門の段階でよく使うのは
主要なプログラムを配置してメインで使っていくappフォルダ、
設定を行うconfigフォルダ、
データベースの設定で使うdbフォルダの3つ

railsはMVCという構図を持つ設計を採用している

主要なプログラムを配置してメインで使っていくappフォルダの中身

  • models = モデルに関するプログラムを格納するフォルダ
  • views = viewを格納するフォルダ
  • controlles = コントローラーを管理するフォルダ
  • assets = 画像といった素材を配置する
  • config = プロジェクトの設定ファイルを格納するフォルダ
    (中でもroutes.rbファイルはよく使う、ルーティングを設定するファイル)

基本としてはdbとconfigの設定を行いつつ
appフォルダの中のmodels、viewsコントローラーを開発していくという流れ

はじめてのRuby on Railsプログラミングをしよう

helloプロジェクトを編集してHello Worldを書いてみる
ブラウザの画面にHello Worldと表示するプログラム

Hello Worldと表示するためにコントローラーとビューを使う
まずhelloプロジェクトがカレントディレクトリであることを確認!

コントローラーを作成するには、generateコマンドを使う

rails g contoroller Users index
  • Users = コントローラーにつける名前
  • index = 作成するメソッドの名前

g = generateの略

👇
作成されたファイルが表示される

必要なところを見ていく

appフォルダ
👇
controllersフォルダ配下に
userscontrollerが作成されている

class UsersController < ApplicationController
  def index
  end
end

UsersControllerクラスが自動で作成されている
ApplicationControllerを継承している

controllerクラスはApplicationControllerを継承する必要がある

controllerはApplicationに対する
特定のリクエストを受け取って処理する役割がある

indexメソッドはクライアントからのリクエストに対して
具体的な処理を実行するためのメソッド

次にviewsを見てみる
views
👇
usersフォルダの中にindex.html.erbファイルが作成されている
userscontrollerのindexメソッドと対なる

.erbというのはerbというテンプレートエンジンを使うときに
htmlファイルにつける拡張子

テンプレートエンジンを使うとhtmlの中に
rubyのプログラムを書くことができる
index.html.erbファイルはrubyコードを組み込めるhtmlファイルのようなものと考えればOK

テンプレートエンジンは他にもあるが
railsはerbを標準で利用
Embedded RuByの略

erbで書かれたrubyコードが含まれたhtmlファイルは
ユーザーに表示する前にrailsによって処理されて
最終的にhtmlとしてユーザーに表示される

デフォルトで記述されている部分は
全て削除して次のように記述!

<hi>Hello World!</hi>

これで実行
railsサーバーを立ち上げる

previw

Preview Running Application

Pop Out Into New Window

アドレス入力欄に
/users/index
をつける

Hello World! と表示されていればOK

/users/indexのURLでアクセスされたら、
UsersControllerのindexメソッドが呼ばれているのだが
その設定がどこで書かれているのかというと、、

configフォルダ

routes.rbファイルに記載がある

routes.rbはルーティングファイルと呼ばれ
外部からのリクエストをどのようにコントローラーとメソッドに
振り分けるかを記述することができる

ルーティングファイルでは
URLとアクションを結びつける設定をする

アクションはルーティングによって指定するときの名前

アクションの指定によって実際に実行されるのは
controllerクラスに実装されたメソッドになる

Rails.application.routes.draw do
  get 'users/index'
  #Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html

  #Defines the root path route ("/")
  #root "articles#index"
end
get 'users/index'

rails g controller

をした時に自動で追加されたもの!

ちなみにこの記述は下記の省略形

get 'users/index', to: 'users#index'

ルーティングについてどのような設定なのか確認する

rails routes

ルーティングの設定が表示される

いま着目するのはこの部分

  • Prefix = リンクを設置する際などにPWを指定する時に使う
  • Verb = 日本語で動詞の意味、一般的にはHTTPメソッドやHTTPリクエストメソッドと呼ばれる
    GET,POST,DELITEなどがある、ざっくりいうと実行したいアクションの種類のこと
    GETならデータの取得、POSTならデータの送信、DELITEならデータの削除など
  • URI Pattern = URIはざっくりいうとURLのことで、Googleクロムのアドレス欄に入力するアドレス
  • Controller#Action = コントローラー名#メソッド名を指している

具体例としては、users#indexというのは
usersコントローラーのindexメソッドを実行するには
/users/indexへアクセスすれば良いという意味なる

(.:formatの部分は必須ではないパラメーターなのでここでは無視してOK)

復習
/users/index
GETでアクセスが来たら
usersコントローラーのindexメソッドを実行する

アプリケーションのルートURLへアクセスがあった時に
helloコントローラーのindexアクションを表示するというのをやってみる

routes.rbに下記を記述

root 'users#index'

helloコントローラーのindexアクションを呼ぶ意味

railsサーバーを起動して
ルートのURLでアクセス
Hello World!と表示されていればOK

root 'users#index'の記述で
アプリケーションのルートのURLでアクセスされたら
usersコントローラーのindexメソッドに割り当てるよう
railsに指示する記述となる


今日はここまで!
明日からタスク管理アプリ作ってみる!
有給だからハローワークも行ってくる!

Discussion

記憶より記録記憶より記録

ex)

「MVCパターンは、アプリケーションを3つの異なるコンポーネント(モデル、ビュー、およびコントローラ)に分離するソフトウェア設計パターンです。 モデルはアプリケーションのデータとビジネスロジックを表し、ビューはユーザインターフェイスのレンダリングを担当し、コントローラはこれらの間の仲介者として機能 アプリケーションをこれらの3つのコンポーネントに分離することにより、MVCパターンはコードをよりモジュラ化、メンテナンス、およびテスト可能にするのに役立ちます。 また、開発者はアプリケーションのさまざまな部分を独立して作業でき、他の部分に影響を与えることはありません。」

この概要説明に加えて、より詳細な説明や、MVCパターンを自分の作業でどのように使用したかの例を示すように求められることがあります。 パターンの各コンポーネントをどのように実装し、それらがどのように連携して機能アプリケーションを作成しているかを説明する準備ができています。