AWSサーバー 〜EC2インスタンス ssh -i ~コマンド
ssh接続コマンドをメモ
ログイン
< ターミナルでの操作 >
% mkdir ~/.ssh
mvコマンドで、ダウンロードしたpemファイルを、ダウンロードディレクトリから、.sshディレクトリに移動。
% mv Downloads/ダウンロードした鍵の名前.pem .ssh/
.sshに移動
% cd .ssh/
% chmod 600 ダウンロードした鍵の名前.pem
% ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したEC2インスタンスに紐付けたElastic IP
以下のメッセージが表示されたら
% ssh -i aws_key.pem ec2-user@52.68.~~~~~~ The authenticity of host '52.68.~~~~~~ (52.68.~~~~~~)' can't be established. RSA key fingerprint is eb:7a:bd:e6:aa:da:~~~~~~~~~~~~~~~~~~~~~~~~. Are you sure you want to continue connecting (yes/no)?
「yes」を入力し、実行する
このようになれば成功
ツールのインストール
パッケージをアップデート
$ sudo yum -y update
環境構築に必要なパッケージをインストール
$ sudo yum -y install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel libxml2-devel libxslt-devel ImageMagick ImageMagick-devel openssl-devel libcurl libcurl-devel curl
Node.jsをインストール
$ sudo curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
$ sudo yum -y install nodejs
Yarnをインストール
$ sudo yum -y install wget
$ sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
$ sudo yum -y install yarn
rbenvとruby-buildをインストール ①rbenvのインストール
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
②パスを通す
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
③rbenvを呼び出すための記述
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
④.bash_profileの読み込み
$ source .bash_profile
⑤ruby-buildのインストール
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
⑥rehashを行う
$ rbenv rehash
Rubyをインストール Ruby 2.6.5のバージョンをインストール
$ rbenv install 2.6.5
$ rbenv global 2.6.5
rehashを行う
$ rbenv rehash
Rubyのバージョンを確認
$ ruby -v
データベース
MariaDBをインストール
$ sudo yum -y install mariadb-server mysql-devel
systemctlコマンド
$ sudo systemctl start mariadb
Amazon LinuxやCentOSに含まれているもので、インストールしたソフトウェアの起動を一括して行えるツール
起動確認
$ sudo systemctl status mariadb
active (running) 」と緑色の表示がされれば、データベースの起動は成功です。
< パスワード設定 >
$ sudo /usr/bin/mysql_secure_installation
① Enter current password for root (enter for none): 」と表示されたらEnterキーを押す ② 「Set root password? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す ③ 「New password:」と表示されたら自身で決めたパスワードを入力(画面にはなにも表示されません) ④ 「Re-enter new password:」と表示されたら、同じパスワードを入力 ここで「... Success!」と表示されればパスワードの設定は完了です。
< 設定の手順 > ① 「Remove anonymous users? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す ② 「Disallow root login remotely? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す ③ 「Remove test database and access to it? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す ④ 「Reload privilege tables now? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す プロンプトが表示されたら設定は完了です。
確認
$ mysql -u root -p
Enter password:」とパスワードを入力するように表示されるので、さきほど設定したパスワードを入力して、Enterキーを押します。 「exit」で抜けれます。
HTML/CSSの基本
普段見ているWebページってどうやって作るのか気になったことはないですか?
私が以前働いていたカフェで、お店のホームページを月額いくらかで作ってもらうって
ことがありました。数万円してたような…
あのとき、HTML/CSSの知識が少しでもあればな…と思います。
そんな過去の自分にむけて、現在学んだHTML/CSSの基礎をまとめてみました。
HTMLを学ぼう
Webページを構成しているプログラミング言語がHTML/CSSです。
正確にはマークアップ言語と呼ばれます。
HTMLで文字情報を書いて、CSSによってHTMLを装飾していきます。
どうやって書くのかというと、テキストエディタを使います。
色々あるようですが、私はVSCodeを使用しています。
実際に書いたのがこちらです。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML/CSSの練習</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>
これは<span class="blue">見出し</span>です
</h1>
<p>
1つ目の段落です
</p>
<p class="second-message">
2つ目の段落です
</p>
<p>
3つ目の段落です。<b>この部分は太字になります。</b>
</p>
<a href="https://www.google.com/">クリックすると、Googleへ移動します。</a>
</body>
</html>
これは基本の構成です。
<!DOCTYPE HTML> → HTMLですよという宣言
<html> → HTML文章の始まり
<head> → 基本情報などを書くところ
<meta> → 文字コードの指定(charset←属性 = ”UTF-8”←属性値)
<title> → ブラウザのタブに表示するタイトル
</head>→ <head>の終わり
<body> → ブラウザ上に表示させる情報
</body>→ <body>の終わり
</html> →HTML文章の終わり
となります。
これをWebサイトで表示させると
まだHTMLだけなので、このように文字だけが表示されます。
基本構成であった、<html>や<body>、<h1>がタグと呼ばれるもので開始タグと終了タグ
の間に文字情報などを書いていきます。
<meta>や<link>のタグのように終了タグが無いものもあります。
そのタグに囲まれている文字などを要素といいます。
基本的なタグ種類
改行 <br> 段落 <p>・・・</p> 見出し <h1>・・・</h1> 1〜6まである 太字 <b>・・・</b> 画像 <img src="画像ファイル名"> リンク <a href="ファイル名">・・・</a> 箇条書き <ul>
<li>1番目〇〇
<li>2番目〇〇
</ul
ほんの一部です。
プログラミングは調べればすぐわかるので、暗記する必要はないです。
なんかあったな〜くらいでおkなんです。
便利な機能として、コメントアウトというものがあります。
<!ーーとーー>で囲めば使えます。
メモや、他人が見たときに何を意図しているのかわかりやすくしたり、
一時的に消したい場合なんかに使えます
CSSを学ぼう
次はCSSです。
HTMLとは別にファイルを用意します。
ちなみに、HTMLの拡張子は「.html」でCSSは「.css」です。
書いたのがこれです。
p {
color: red;
font-size: 24px;
}
.second-message {
color: green;
font-size: 50px;
}
h1 {
background-color:blue;
color: white;
}
pとかh1の部分をセレクタといって、CSSの装飾をどの部分のHTMLに適用するのか
を選択するものになります。
HTMLで
<p class="second-message">
2つ目の段落です
</p>
class="クラス名"をつけることで、個別に選択できるようになります。
colorやfont-sizeなどをプロパティといって、セレクタで指定したHTMLの何を変えるのか
を選択します。
colorなら文字の色、font-sizeなら文字の大きさです。
プロパティの内容を決めるのが値で、コロン(:)で区切り、コロンとセミコロン(;)の
間に値を決めます。
CSSのファイルをHTMLに読み込ませるために、HTMLファイルのhead要素に
<link rel="stylesheet" href="CSSのファイル名">
を記述することでCSSのファイルが読み込まれます。
では、実際にCSSファイルを読み込ませると
このようになります。
文字の色、大きさ、背景色などを変えることができます。
classで指定した、P要素のみ文字が大きく、緑色にすることができます。
まとめ
HTMLとCSSファイルを使って、Web上に文字を表示させたり、画像をつけたりできます。
やればやるほど、奥が深く、新しいことも増えていきます。
でも、基本をわかっていればあとは実際に書いてみて、使い慣れるだけです。
今回は、HTML/CSSの基礎の基礎の部分をまとめました。
興味があれば、Progateなんかで体験してみてください。
Ruby on Rails 〜エラーメッセージ表示から日本語化〜
エラーメッセージの表示
エラーメッセージを表示させる設定
まずは、バリデーションで設定します。
validates :text, :image, presence: true
で空では保存できないようにします。
つぎに
コントローラーで保存できる場合の条件分岐を記述します。
def create @game = game.new if @game.valid? @game.save redirect_to root_path else render 'new' end end
バリデーションで引っかかると、保存されずにnewアクションに戻る
ようにしています。
つづいて、
ビューです。
views/layoutsの下に「_error_messages.html.erb」ファイルを作ります。
<% if model.errors.any? %> <div class="error-alert"> <ul> <% model.errors.full_messages.each do |message| %> <li class='error-message'><%= message %></li> <% end %> </ul> </div> <% end %>
どのモデルにも対応できるように、「model.errors.any?」を記述しています。
最後にnew.html.erbファイルに
<%= render 'layouts/error_messages', model: form.object %>
を記述して、保存されなかったときに読み込まれエラーメッセージが表示されるようにします。 これで、エラーメッセージの設定は完了です。
日本語化
これでエラーメッセージを表示することができますが、英語表記になります。 「Text can't be blank」や「Image can't be blank」となります。
これを日本語に変換していきます。 config/application.rbを編集します。
# 中略 module game class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_defaults 6.0 # 日本語の言語設定 config.i18n.default_locale = :ja # 省略 end end
つぎは Gemfileを編集します。
gem 'rails-i18n'
記述できたら「bundli install」を実行します。
これで下記のサイトに記述のある日本語は変換されます
まだ、完全に日本語にできなていないので、様々な言語に対応できる言語ファイルの localeファイルを用意し、YAML形式で記述します。 YAML形式とは、ファイルの書き方のルールのことで、 文字だけで記述されているテキストのことです。
config/localesの下に「devise.ja.yml」ファイルを作ります。
からまるごとコピーして、devise.ja.ymlに貼り付けます。 これで、日本語化されます。
しかし… まだ日本語化されていないものもあります。 自身で名付けた「Nickname」や「text」などはそのまま表示されます。
config/localesの下に新たに「ja.yml」ファイルを作成します。
ja: activerecord: attributes: user: nickname: ニックネーム game: text: テキスト image: 画像
と変換したい文字を設定します。 これで、すべてが日本語化されました。 テストコードのエラーメッセージも変更されるので テストコードも変更を忘れずにしましょう!
エラーメッセージを指定する方法
バリデーションで
with_options numericality: { other_than: 1 }do validates :category_id validates :detail_id validates :delivery_fee_id validates :area_id validates :duration_id end
としてた場合 エラーメッセージは 「1以外の値を入力してください」 となります。
ユーザーからするとよくわからないですよね? たとえば 「〇〇を選択してください」 のほうがわかりやすです。
なので、エラーメッセージを変更します。
with_options numericality: { other_than: 1 , message: 'を選択してください' }do 省略
とすることで変更できます。
バリデーションによっては
validates :name, presence: { message: 'は1文字以上入力してください。' }
という記述もあるので注意です。 詳しくは
を参照してください。
プログラミング〜JavaScript〜
JavaScriptとは?
JavaScript言語を使うことで、ページを移動せずに画面の表示を変えたり、 画面を更新することなくサーバーにデータを保存したり動きのあるWebページ を作ることができます。
JavaScriptの動作を確認する方法
デベロッパーツールを使うことで、javaScriptを実行することができます。
ブラウザ上でダブルクリックをし、検証を選択。(⌘ + ⌥ + c)
ElementsパネルではHTML/CSS。
ConsoleパネルでJavaScriptの操作が行なえます。
Consoleを使うことで手軽に練習ができます。
JavaScriptの書き方
表示させる方法
console.log("おはよう")
Enterキーを押して実行すると「おはよう」表示されます。
変数定義
変数とは箱のようなもので、データを入れたり出したりできます。
値を入れることを代入、出すことを参照と呼びます。
変数に名前をつけることができ、変数名といいます。
変数名には命名規則があります。
- let
再代入は可能、再定義はできません。
let sample = "おはよう” sample = "おはよう" (再代入OK) let sample = "おはよう" (再定義NG)
- const
再代入、再定義ができません。
const sample = "おはよう" sample = "おはよう" (再代入NG) const sample = "おはよう" (再定義NG)
- var
再定義、再代入可能な書き方で現在はあまり使われていません。
<code>var sample = おはよう sample = おはよう (再代入OK) var sample = おはよう (再定義NG)
テンプレートリテラル
バッククォート(`)で囲むことで、文字列の中に変数を埋め込むことができます。
const name = "タロウ" const age = 25
const info = ' 私の名前は${name}、${age}歳です。' console.log(info)
条件分岐
if (条件式1) { //条件式1がtrueのときの処理 } else if (条件式2){ //条件式1がfalseで条件式2がtrueのときの処理 } else { //条件式1も条件式2もfalseのときの処理 }
Javascriptでif文を記述する際は
- 条件式は()でくくる
- 波括弧{}内の処理が実行される
- 複数の条件を指定する場合は、else ifと記述する
const num = 60 if(num % 15 == 0) { console.log(`${num}は3と5の倍数です`) } else if (num % 3 == 0) { console.log(`${num}は3の倍数です`) } else if (num % 5 == 0) { console.log(`${num}は5の倍数です`) } else { console.log(`${num}は3の倍数でも、5の倍数でもありません`) }
実際に記述したらこんなかんじです。
繰り返し処理
javaScriptで、繰り返し処理を行うときは、for文を使います。
for ([①初期化式]; [②条件式]; [③加算式]) { // 繰り返す処理の内容 }
①初期化式
for文の中で使用する変数を定義
②条件式
処理を何回繰り返すか指定
③加算式
初期化式で定義した変数の増減
for (let i = 1; i <= 100; i++ ) { // 100回処理を繰り返す }
letを使い、変数iを1と定義し、定義した変数iでループする条件を指定しています。
i++は変数iを1増やすという意味です。なので、変数iは処理が1回実行されると1増えます。
条件式にi <= 100としているので、100回処理が行われます。
JavaScriptの基本をまとめてみました。
Ruby on Rails 〜Formオブジェクトパターン〜
Formオブジェクトパターンとは?
デザインパターン
料理を作るときにレシピを見るように、railsでプログラムを記述する際にも レシピのようなものがあります。
料理のレシピは自分で試行錯誤せず、レシピを見れば手っ取り早くおいしい料理を 作ることができるのと同じように、Railsにも良いとされる手順や方法があります。
料理のレシピのように、要望にたいして最適な方法や手順をまとめたものを デザインパターンといいます。
Formオブジェクトパターン
1つのフォーム送信で複数のテーブルに保存したり、定義したクラスにform_withメソッドに対応する機能とバリデーションをかけたりを行う方法のことをFormオブジェクトパターンといいます。
実装の手順
新たにmodelsディレクトリにファイルを作成し、クラスを定義します。
作成したクラスにform_withメソッドに対応する機能とバリデーションを行う 機能をもたせるための記述をします。
class ItemOrder include ActiveModel::Model attr_accessor :name, :name_reading,... # バリデーションの処理 def save # テーブルにデータを保存する処理 end end
//ActiveModel::Modelをincludeすると、 このクラスのインスタンスはform_withやrenderなどの ヘルパーメソッドの引数として扱えたり、バリデーションを使えるようになります。
バリデーションの処理
class ItemOrder include ActiveModel::Model attr_accessor :name, :name_reading, :postal_code, :prefecture, :city, :house_number, :building_name, :price with_options presence: true do validates :name, format: { with: /\A[ぁ-んァ-ヶ一-龥々ー]+\z/, message: "is invalid. Input full-width characters." } validates :name_reading, format: { with: /\A[ァ-ヶー]+\z/, message: "is invalid. Input full-width katakana characters." } # 「住所」の郵便番号に関するバリデーション validates :postal_code, format: { with: /\A[0-9]{3}-[0-9]{4}\z/, message: "is invalid. Include hyphen(-)" } # 「注文価格」に関するバリデーション validates :price, numericality: { only_integer: true, message: "is invalid. Input half-width characters." } end # 「住所」の都道府県に関するバリデーション validates :prefecture, numericality: { other_than: 0, message: "can't be blank" } # 「注文価格」の金額範囲に関するバリデーション validates :price, numericality: { greater_than_or_equal_to: 1, less_than_or_equal_to: 1000000, message: "is out of setting range" } end
//numericalityは数値かどうかを検証するバリデーションになり、 オプション「only_integer:true」で整数のみという制限になります。
保存したい複数のテーブルのカラム名をすべて属性値として扱えるようにします。
データをテーブルに保存する処理
validates :price, numericality: {.... 省略 def save # ユーザーの情報を保存し、「user」という変数に入れている user = User.create(name: name, name_reading: name_reading) # 住所の情報を保存 Address.create(postal_code: postal_code, prefecture: prefecture, city: city, house_number: house_number, building_name: building_name, user_id: user.id) # 注文の情報を保存 Oder.create(price: price, user_id: user.id) end end
コントローラーのnewアクション、createアクションでFormオブジェクトのインスタンスを生成するようにします。
class ItemController < ApplicationController def index end def new @item_order = ItemOrder.new end def create @item_order = ItemOrder.new(item_params) #「UserDonation」に編集 if @user_donation.valid? @user_donation.save redirect_to action: :index else render action: :new end end private # 全てのストロングパラメーターを1つに統合 def donation_params params.require(:user_donation).permit(:name, :name_reading, :nickname, :postal_code, :prefecture, :city, :house_number, :building_name, :price) end end
フォーム作成の部分をFormオブジェクトのインスタンスを引数として渡す
<%= form_with(model: @Item_order, url: order_path, local: true) do |form| %> <%= render 'error_messages', model: @Item_order %>
これで、いつのフォームから複数のテーブルに保存ができ、 エラーメッセージの表示もできるようになります。
Ruby on Rails 〜ActiveHashをまとめてみました〜
都道府県名一覧やカテゴリーなど基本的に変更されないデータは データベースに保存せずに、ActiveHashというGemを使います。
準備
Gemfileに
gem 'active_hash'
と記述して、「bundle install」を実行します。
つづいて、ターミナルで
% rails g model game
を実行して、テーブルを作成します。
定義と継承
app/modelsディレクトリにgenre.rbファイルを作成します。
そしてこのファイルに定義します。
class Genre < ActiveHash::Base self.data = [ { id: 1, name: '--' }, { id: 2, name: 'RPG' }, { id: 3, name: '格闘' }, { id: 4, name: 'レース' }, { id: 5, name: 'シュミレーション' }, { id: 6, name: 'リズム' }, { id: 7, name: 'アクション' }, { id: 8, name: 'スポーツ' }, { id: 9, name: 'ストラテジー' }, { id: 10, name: 'その他' } ] end
「ActiveHash::Base」と記述して継承することで、 ジャンルのデータが使用できるようになります。
class CreateArticles < ActiveRecord::Migration[6.0] def change create_table :game do |t| t.string :title , null: false t.text :text , null: false t.integer :genre_id , null: false t.timestamps end end end
テーブルにGenreモデルを外部キーとすることで紐付いたデータを扱えるようになります。 記述ができたら、「rails db:migrate」を実行します。
アソシエーション
紐付いたデータを習得できるように、gameモデルとGenreモデル間でアソシエーションを設定するために「module(モジュール)」を使います。
moduleは簡単にいうと、メソッドをまとめているものです。
アソシエーションを設定します。
ActiveHashを用いて、モデルをアソシエーションの設定をするためにはmoduleを取り込む必要があります。
belongs_toの場合
gameモデルは1つのジャンルに紐づくので「belongs_to」を設定します。
belongs_toの場合は 「extend ActiveHash::Associations::ActiveRecordExtensions」 と記述します。
class Article < ApplicationRecord extend ActiveHash::Associations::ActiveRecordExtensions belongs_to :genre end
has_manyの場合
Genreモデルは、複数のゲームに紐づくので「has_many」を設定します。 has_manyの場合は 「include ActiveHash::Associations」 と記述します。
class Genre < ActiveHash::Base self.data = [ { id: 1, name: '--' }, { id: 2, name: 'RPG' }, { id: 3, name: '格闘' }, { id: 4, name: 'レース' }, { id: 5, name: 'シュミレーション' }, { id: 6, name: 'リズム' }, { id: 7, name: 'アクション' }, { id: 8, name: 'スポーツ' }, { id: 9, name: 'ストラテジー' }, { id: 10, name: 'その他' } ] include ActiveHash::Associations has_many :articles end
これで、アソシエーションの設定は完了です。
バリデーション
バリデーションを設定します。
空のジャンルが選択できないようにします。
class game < ApplicationRecord extend ActiveHash::Associations::ActiveRecordExtensions belongs_to :genre #空のtitleとtextを保存できないようにする validates :title, :text, presence: true #ジャンルの選択が「--」の時は保存できないようにする validates :genre_id, numericality: { other_than: 1 } end
numericalityは、数値かどうかを検証するバリデーションです。 「ーー」では保存できないようにしたいので、numericality: { other_than: 1 }とすることで、id:1以外であれば保存できるという意味になっています。
作成したジャンルをプルダウンで表示させるには
<%= f.collection_select(:genre_id, Genre.all, :id, :name, {}, {class:"genre-select"}) %>
<%= form.collection_select(保存されるカラム名, オブジェクトの配列, カラムに保存される項目, 選択肢に表示されるカラム名, オプション, htmlオプション) %>
と記述します。
以上がActiveHashの流れとなります。
Ruby on Rails アプリケーション作成の手順
Ruby on Railsとは?
プログラミング言語であるRubyのフレームワークのことを「Ruby on Rails」といいます。 フレームワークとは最小のコストでアプリケーションの作成をできる仕組のことをいいます。
Ruby on Rails は同じコードを繰り返し書くことを避け、保守管理しやすくバグを減らし、ルールに則ったコードを書くことで記述量を少なく、スピーディーに開発ができるという特徴があります。
準備
ターミナル % cd (ホームディレクトリに移動) % cd ~/ディレクトリ名 (作成したディレクトリに移動) % bundle config --global build.mysql2 --with-opt-dir="$(brew --prefix openssl)" (Railsの設定)
1.アプリケーションの雛形を作ります
ターミナル % rails _6.0.0_new アプリケーション名 -d mysql
実行します。
これでアプリケーションに必要なファイルを一式自動で作成してくれます。 このディレクトリをVSCode(テキストエディタ)で開きます。 VSCodeを開いた状態で、ディスクトップ上にあるターミナルタブから新しいターミナル(controlキー + SHIFTキー + ^) でVSCode上でターミナル操作ができます。
2.データベース
雛形ができたら、データベースを作成します
ターミナル rails db:create
実行します。
Created database '作成したアプリケーション名'_development' Created database '作成したアプリケーション名_test'
こんな感じのメッセージが表示されます。 このデータベースの中身をわかりやすくするために、シークエル・プロ(Sequel Pro)を使用します。
シークエル・プロを起動し
先程、作成したデータベースが表示されているはずです。
これで、アプリケーションの雛形が完了です。
4.Railsの処理の流れ
Railsの処理は、
ルーティング→コントローラー→ビュー
の順で処理が行われます。
ルーティング
ルーティングはリクエスト(トップページを見たいなど)があった時に、 対応する行き先を振り分ける役割です。
config/routes.rb
に記述します。
rails.application.routes.draw do HTTPメソッド 'URIパターン', to:'コントローラー名#アクション名' end
アクション
アクションとは、処理のカテゴリーのことで
index 一覧表示ページを表示するリクエストに対応して動く
new 新規投稿ページを表示するリクエストに対応して動く
create データの投稿を行うリクエストに対応して動く
show 個別詳細ページを表示するリクエストに対応して動く
edit 投稿編集ページを表示するリクエストに対応して動く
update データの編集を行うリクエストに対応して動く
destroy データの削除を行うリクエストに対応して動く の種類があります。
コントローラー
リクエストに対応する処理をまとめて、 ルーティングからのリクエストを受け取り処理し、 レスポンスを返す役割です。
コントローラーを作成するには
コマンド「rails g」を使います。
ターミナル % rails g controller コントローラ名
逆のコマンドに「raills g」があります。 間違って作成したときなどに、 関連するファイルごと削除してくれます。
つづいて、 コントローラ名_controller.rbにアクションを定義します。
class 〇〇Controller < ApplicationController def index (indexアクションを定義) end end
ビュー
ブラウザにレスポンスとして、見た目を返します。 Railsでのビューファイルの拡張子は「〇〇.html.erb」となります。
app/views/コントローラ名のディレクトリでファイルを作成します。 このファイルに見た目となる記述をします。 例えば以下のように入力します
<h1>Hello Word</h1>
ローカルサーバーを起動
コマンド「rails s」を実行します。 これは、ローカルサーバーを起動するコマンドです。 止める場合は「controlキー + c」です。
ローカルサーバーとは、パソコン上のみのネットワークのことで 本番環境前に、動作を確認するために使用します。
ローカルサーバーを起動した状態で
を開きます
先程、記述した「Hello World」が表示されれば成功です。
コントローラに class 〇〇Controller < ApplicationController def index @post = 今日の晩ごはんはなにつくろうかな? end end
と定義して
<h1>Hello Word</h1> <%= @post %>
と、ビューファイルに記述して先程の
を開きます。
今日の晩ごはんはなにつくろうかな? と表示されているはずです。
コントローラーで定義したインスタンス変数を、 対応するビューファイルで使用することができます。
<%=...%>はRubyのコードを使用するタグになります。
<%...%>とすると画面上に表示しなくなります。 if分や、each文などを使用する場合に使います。
Ruby on Railsの雛形をつくり、ルーティングを設定し コントローラに定義して、ビューで見た目を表示させる という基本の流れとなります。