Output Diary

勉強のアウトプットを毎日発信しています

プログラミング

【Rails】バリデーション

バリデーションとは、 データベースに保存する前に保存する内容を検証する機能です。 バリデーションを定義することによって、フォームの入力必須の欄が入力されていなかったときに、フォームの送信を出来ないようにすることが出来ます。 バリデーションのト…

Rails: ActiveRecord::Baseメソッドについて

昨日ふとActiveRecord::Baseってなんだろうと思ったので、 今日はActiveRecord::Baseの役割を調べつつまとめていきたいと思います。 そもそもActiveRecordとは ActiveRecordとは、 MVCでいうところのM、モデルに相当するものです。 ActiveRecordによりデータ…

論理設計と正規化

論理設計の4ステップ エンティティの抽出 エンティティの定義 正規化 ER図の作成 エンティティの抽出・定義 エンティティとは、日本語で「実体」という意味にあたります。 具体的には、物理的実体を伴うものだと顧客・社員・店舗といったものや、 概念として…

データベースと論理設計

データベースとは、 大量の情報を保存し、コンピュータから効率よくアクセスできるように加工したデータのあつまりのことをいいます。 データベースの由来 由来は第二次世界大戦後の米軍から来ていると言われています。 情報のアクセスを効率化するために点…

フォームを作る

フォームに必要な要素 フォームに必要な要素は、 <form>、<label>、<input>、<textarea>、<button>の5つです。 <form>要素 <form>要素は、フォーム関連の集まりを表す要素です。 すべてのフォームは<form>要素から始まります。 <form action="/my-handling-form-page" method="post"> </fo</textarea></label></form>…

フォームデータの送信

Webは基本的なクライアント・サーバー構成に基づいています。 クライアント(Webブラウザ)はHTTPプロトコルを使用してサーバーにリクエストを送ります。サーバーは同じプロトコルを使用してリクエストに答えます。 クライアント側において、HTMLフォームは…

プログラミング言語について調べてみた。

プログラミングの言語は、 ある程度のユーザーがいる言語に限っても250以上の種類のプログラミング言語が存在していると言われています。 しかし全ての言語が今も使われているわけではなく実際に使用されているのは全体の10%程度です。 今日はプログラミング…

【Rails】モジュール

Rubyには、まとまりをもった設計図を一箇所にまとめた存在として、 「モジュール(Module)」という概念があります。 モジュールの特徴 moduleは、 classと同じようにmodule内に関数の定義をすることが出来ますが、 moduleには ・インスタンスが生成できない…

【Rails】NOT NULL制約とは

NOT NULL制約とは、 データベースのテーブルの項目につける制限(制約)のひとつで、 「空っぽの値(NULL)は入れちゃダメ制約」のことです。 NULLは「空だよー何も入ってないよー」ということをあらわす単語です。 NOT NULL制約が付与された項目にはNULLを…

【Rails】form_withについて

forma_withとは、 railsで情報を送信するためのヘルパーメソッドです。 form_withにより、簡単にHTMLを作成することができます。 form_withの使い方 ビューファイル (データベースに保存しない時) <%= form_with url: "users_path" do |form| %> <%= form.te…

【Rails】マイグレーション

今日は「マイグレーション」について調べたものをまとめていきます。 マイグレーションとは マイグレーション(migration)は、 Active Recordの機能の1つです。 通常テーブルを操作したい場合は、SQLを書かなればいけませんが、 マイグレーションには「SQL…

【Rails】redirect_toとrenderの違いについて

おはようございます☀ 今日は、redirect_toとrenderの違いについてまとめていこうと思います。 redirect_toとrenderの違い ・render : controller → view・redirect_to : controller → URL → route → controller → view renderはいきなりviewに飛ぶのに対し…

【Rails】RESTfulとは

おはようございます。 今日は「RESTful」とは何なのか、それがRailsにどう関与しているか についてまとめていきます。 RESTfulとは RESTfulとは REST(REpresentational State Transfer)という設計原則に従うシステムのことを指す形容詞です。 もう少し分かり…

【Rails】findについて

昨日参加したRails勉強会でfindとfind_byについての理解が全く足りてなかったので、 今日のブログでfindとはなんぞやということをまとめていきたいと思います。 今回の内容としては、 1. findメソッドについて 2. findメソッドとfind_byメソッドの違いについ…

【Rails】ER図とは

ER図とは、 「データベース設計(データモデリング)で使う設計手法」のことです。 もっと簡単にいうと、 テーブルとテーブルを線でつないで関係性を見やすくしたものです。 英語では「Entity Relationship Diagram」と呼ばれています。 ER図の構成 ER図は、…

【Rails】オブジェクト指向

オブジェクト指向は、 システム化そのものに着目した開発手法です。 効率的に開発をすすめていくために以下のことを意識する必要があります。 オブジェクト指向で覚えておきたいキーワード ・カプセル化 ・継承 ・抽象化 ・ポリモーフィズム カプセル化 カプ…

【Rails】オブジェクト

オブジェクトって何?ってなったので、 オブジェクトについて調べてみました。 オブジェクトとは IT用語辞典バイナリによると、 オブジェクトとは、操作の対象となっているデータ、または、オブジェクト指向の考え方においてプログラムが扱う対象のことであ…

【Rails】MVCモデル

MVCモデルのMVCは、 「Model」「View」「Controller」の頭文字から来ています。 MVCとは Webフレームワークのことで、 「アプリケーション設計」を整理するための概念の1つです。 「アプリケーション設計」が必要な理由は、全体を理解してコードを書いてい…

【Rails】Gemについて

いろいろなプログラムで共通して使える便利なプログラムを ライブラリと呼びます。 Rubyの世界にもライブラリがあり、Gemと呼ばれています。 Gemはrubygems.org で公開されています。 ■ Gemのインストール Gemをインストールするにはgem iコマンドを利用しま…

【Rails】Railsアプリの動作のしくみ

Railsアプリの動作を図にすると次のようになります。 1. ブラウザのURL欄にアドレスを入力してEnterを押すとリクエストが飛んでいく。 2. リクエストを受け取ったRailsアプリはHTMLをつくり、レスポンスとして返す。 3. レスポンスを受け取ったブラウザはHTM…

【Rails】関係演算

" data-en-clipboard="true"> " data-en-clipboard="true">関係演算とは、 表の中から特定の行や列を取り出したり、 表と表をくっつけて新しい表を作り出したりする演算のことをいいます。 選択 選択は、行を取り出す演算です。 特定の部署の行を取り出しま…

【Rails】データベース

データベースとは、 データの蓄積・保存が容易にできるように整理された情報の集まりのことです。 データベース管理システム(Data Base Management System)とは、 データベースの機能をアプリケーションから簡単に扱えるようにしたミドルウェアです。 はい…

【Rails】ロールバック

" data-en-clipboard="true"> " data-en-clipboard="true">ロールバックとは、 マイグレーションファイルを使って上げたバージョンを、 何らかの事情で戻す(=バージョンを下げる、適用したマイグレーションを取り消すこと)ことをいいます。 複数人で開発…

【Rails】インジェクション

" data-en-clipboard="true"> " data-en-clipboard="true">インジェクションとはなんでしょうか? " data-en-clipboard="true"> " data-en-clipboard="true"> " data-en-clipboard="true"> " data-en-clipboard="true">ウェキペディアによると以下のように定…

【Rails】セキュリティ

" data-en-clipboard="true"> " data-en-clipboard="true"> " data-en-clipboard="true"> " data-en-clipboard="true"> Webアプリケーションは便利な反面、使用する際にリスクも発生します。 例えば、 ・ユーザーアカウントを奪われた ・不正なコンテンツが…

【Rails】国際化

" data-en-clipboard="true"> " data-en-clipboard="true">さまざまな国に使えるよう基盤を整えることを国際化と呼びます。 ユーザーごとに言語を切り替えたり、 その国ごとのタイムゾーンを使用したりします。 タイムゾーンは、 ・Time.zone.now ・Time.cur…

【Rails】ルーティング

ルーティングとは、 Railsアプリケーションのコントローラへ指示を出すための道筋 のことです。 ルートを構成する5つの要素 ルートの読み取り方 get '/login', to: 'sessions#new' これは、 GETメソッドで、'/login'というURLに対してリクエストが来たら、 …

【Rails】テスト

" data-en-clipboard="true"> " data-en-clipboard="true"> 開発を進めるたびに、 開発した機能を確認するためにテストを同時に書いていく必要があります。 テストを書かないと、最初の方は問題なく動いていても機能を追加したときに新機能だけでなく既存の…

【Rails】セッションとCookie

" data-en-clipboard="true"> " data-en-clipboard="true">セッション " data-en-clipboard="true"> " data-en-clipboard="true">セッションとは、 1つのブラウザから連続して送られている一連のリクエストの間で「状態」を共有できるようにしたものです。 …

【Rails】トランザクションとは

" data-en-clipboard="true"> " data-en-clipboard="true">トランザクションとは、 複数の処理をまとめて1つ大きな処理として扱う機能です。 処理の1つで例外が発生した時、 複数の処理を巻き戻すことができます。 トランザクションの使用イメージ ATMに入…