Rails】データベース作成とCRUD処理|Fresopiya究極の自由を目指すブログFresopiyaFresopiya場所にもお金にも時間にも、何にも縛られない自由な状態になったら一体人間は何をしてどこに向かうのか。自由を目指すエンジニアのブログです。「哲学」と「プログラミング」と「政治経済」、「ブログ」がメインになるかと。06/18/2019スポンサードリンクどうも、とがみんです。Railsによるデータベースへの作成や接続、そしてCRUD処理について紹介していきます。Railsでは、使用できるデータベースはSQLite、MySQL、PostgreSQL等複数あり、自由に選択することができます。データベースとのやり取りを行うのがMVCアーキテクチャのモデル(M)で、モデルはデータベースに含まれるテーブル毎に用意されます。オブジェクト指向言語と、リレーショナルデータベースの橋渡しとして、「O/Rマッパー」というものが使用されます。「O/Rマッパー」は、アプリケーション側で使用するオブジェクトモデルと、データベースが使用するリレーショナルモデルとは構造が違うため、そのギャップを解消するためのツールです。これにより、データベースから取得した、情報をオブジェクトにマッピングする作業が不必要になったりまた、リレーショナルデータベースを扱うためのSQLを記述する必要もなくなり、開発を効率化することができます。以下のような手順で、データベースの接続設定と作成を行っていきます。データベース接続の設定データベースにアクセスするためのモデルクラス作成マイグレーションファイルによるデータベースの作成データベース接続の設定データベースの接続の設定について、まず、config/database.ymlのファイルに、接続設定を定義する必要があります。使用するデータベースの種類や、接続先のIPアドレスなどの設定を行います。db/production.sqlite3database.ymlファイルには、「開発」、「テスト」、「本番」環境が用意されており、別々のデータベースを用意するようになっています。これによって、たとえ開発環境で行った操作が不用意に本番環境に影響を及ぼすような事故を防げています。データベースを扱うに当たって、設定できるパラメータは以下です。概要adapter接続するデータベースの種類(sqlite、mysql2、postgresql)databaseデータベース名(SQLiteではデータベースファイルのパス)hostホスト名/IPアドレスportポート番号pool確保する接続プールtimeout接続タイムアウト時間encoding使用する文字コードusernameユーザー名passwordパスワードsocketソケット接続プール:データベース接続オブジェクトのキャッシュ。データベースへの接続をあらかじめ準備しておき、利用後は、プールに戻し再利用する。それにより、本来通信したいデータ以外の制御用のデータのやり取りを軽減できる。JDBC開発者ガイドデータベースにアクセスするためのモデルクラス作成データベースへ接続する設定が終わったら、次にデータベースにアクセスするためのモデルクラスを作成します。以下のようなusersテーブルを扱うにあたって、必要なモデルを作成します。データ名データ型userNameStringageintegergenderbooleanまた、作成したモデルと、データベースのリレーショナルモデルの橋渡しを行う「O/Rマッパー」も同時に作成します。この「O/Rマッパー」はオブジェクト指向で書かれたコードをデータベースを操作するSQLに書き換える役割を果たします。ターミナル上で以下のコマンドを実行し、usersテーブルを作成します。gender:boolean実行すると、幾つかファイルが作成されます。generateコマンドで、データベースにアクセスするためのモデルクラスを作成しましたが、まだデータベース(テーブル)は作成されていません。マイグレーションという機能を利用して、データベースの作成を行います。途中でレイアウトの変更が起こった場合も、簡単に反映することができます。generateでモデルを作成した際に自動生成されています。:gendert.timestampsendendend以下のコードを実行します。db:migrate以下のような結果が得られれば、usersテーブルは正しく作成できています。データベース操作CRUD処理これまでの処理で、接続するデータベースの設定やテーブルの作成を行ってきました。次に、そのテーブルにデータを入れ込んだりしていきます。CRUD処理の「CRUD」とは、データの「作成(Create)」、「参照(Read)」、「更新(Update)」、「削除(Delete)」の頭文字をとっています。console上で確認していくので、以下のコマンドを実行します。新規データの作成についてです。以下のコードを実行すると、データが作成されます。先ほど保存したデータを取り出し、togaminという変数に代入するコードが以下です。User.find(user.id)データの更新Update処理togaminという変数に格納された、先ほど取り出したデータを更新します。名前をTogaminからTogamin2に変更しました。性能向上を目的とした研究をしていました。現在はFinTech系ベンチャー企業勤務。