LoginSignup
0
0

More than 3 years have passed since last update.

アプリケーションの作成準備

Posted at

最初に

・アプリケーションの内容を考える
・アプリケーションの名前を決める
・アプリケーションの雛形を作る
・データベースを作る

追加で下記も行う。

■ 効率よく書く為にSlimを使える様にする
■ 見栄えを良くする為にbootstrapを導入する
■ Railsのエラーメッセージを日本語で出せる様にする

1.作成するアプリケーションの内容を考える

今回はタスク管理のアプリケーションを作ります。
CRUDという基本的なデータベース操作を使用します。
C Create(作成)
R Read(参照)
U Update(更新)
D Delete(削除)

作りたい機能のリスト

・一覧表示機能
・詳細表示機能
・新規登録機能
・編集機能
・削除機能

2.アプリケーションの名前を決める

私は今回はtaskleaf_2という名前にします。

3.アプリケーションの雛形を作る。

書式

$ rails new アプリケーション名 [オプション]

今回はデータベースにPostgreSQLを使用するするので「オプション」部分には「postgreSQL]を指定。

$ rails new taskleaf_2 -d postgresql

taskleaf_2のディレクトリに移動したら、データベースを作成しましょう。

$ bin/rails db:create

データベースの作成が出来ればサーバを起動してテストしてみましょう。

$ bin/rails s

4.タスクモデルを作成する

モデルってなに?
簡単に言うとデータベースにアクセスする為の機能を持ったクラス(オブジェクト)のことを言います。 コントローラーの命令に従って、データベースから何らかの情報を取り出したり、あるいはデータベースに何らかの情報を書き込んだりするのがモデルの主な仕事です。
mvc_pattern.png
らしいです。。
ということで、これからタスクの登録や削除といったタスク管理の機能を実装する為に、
まずは、コントローラーの操作の対象となる「タスク」モデルの実装を行ます。

★モデルのクラスの名前を決める

名前は以下のような命名規則があります。

1.モデルのクラス名はキャメルケース
2.モデルのデータベース名はスネークケース

【キャメルケース】
単語の先頭を大文字にする命名規則です。
【スネークケース】
単語の間をアンダーバーでつなぐ命名規則です。

今回は素直にモデルのクラス名はキャメルケースで 「Task」とつけます。

★データベースのテーブル名を決める

テーブル名はモデルのクラス名の複数形となります。

クラス名が「Task」なので、テーブル名は「tasks」と言うことになります。

★タスクモデルの属性を設計する

今回のタスクモデルには5つの属性が必要そうです。
「ID」「名称」「詳しい説明」「登録日時」「更新日時」
IDや、登録・更新は、railsが自動的に用意してくれるので、残りの2つを準備します。

属性の意味 属性名・カラム名 データ型 NULLを許可するか デフォルト値
名称 name string 許可しない なし
詳しい説明 description text 許可する なし

★タスクモデルのひな形を作成する

Railsにはモデルを作成する為に便利なジェネレーターがあります。

書式
$ bin/rails g model [モデル名] [属性名:データ型 属性名:データ型 属...] [オプション]

今回はこうなります。

$ bin/rails g model Task name:string description:text

実行されると
「モデルのクラスファイル」「マイグレーションファイル」「モデルの自動テストのファイルのひな形」が自動で作成されます。

★マイグレーションでデータベースにテーブルを追加する

モデルのクラスはテーブルの定義を読み込んでから動く為、モデル作成の場合はテーブルの追加から行うとスムーズ。
「tasks」テーブルを追加したいので追加するというマイグレーションファイルが必要。
db/migrateにXXXXXXXXXXXXXX_create_tasks.rb
と言うファイルが出来ているので開いて確認します。
今回は必要な物が揃っているので追加変更はせずに進みます。

マイグレーションをデータベースを適用するには、

$ bin/rails db:migrate

を行う。

次回 コントローラーとビュー

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