記事の目的
Cloud9にてECサイトを作るにあたって「何から始めればいいんだっけ?」と思いQiitaを含めて何回か参照していましたが、流れがまとまらなかったので自分用の備忘録として記載します。参考までに。
本当に大まかにまとめたので、詳細箇所については別途追記するかもしれません。
ECサイト作成前に準備すること。
個人製作の場合は必ず必要というわけではないですが、作成する前に作っておくと後々サイトを作りやすいです。
Cacooというサイトであれば両方作成できるので、おすすめです。
####・ER図
####・ワイヤーフレーム
####・GitHubの連携
####・ImageMagickのインストール
ファイル・モデル・コントローラーの作成
####①ファイルの作成
※Cloud9にて諸々の初期設定が終わっていること。これに関しては個人の設定に左右される。
ターミナルを開いて、下記を入力しファイルを作成する。
(例)として、ファイル名を「Illusters」というアプリを作るものとします。
【ターミナル】
~$ rails new ファイル名
(例)~$ rails new Illusters
※ファイル名は"頭文字:大文字"
####②モデルの作成
作りたいモデルを作成する。
モデルの中にカラムとデータ型を一緒に作成すれば後々マイグレーションファイルがごちゃごちゃしないのでオススメ。
user_idといったモデルに直結するidは記載不要。
【ターミナル】
~$ rails g model モデル名 カラム1:データ型1 カラム2:データ型2 ...
(例)~$ rails g model user name:string profile_image:string introduction:text
※モデル名は"頭文字:小文字,単数形"
必要なモデルを作成した後に必ず下記の文を実行しマイグレーションすること!
【ターミナル】
~$ rails db:migrate
↑を行わないとrailsの実行時にエラーが発生する。
#####モデルを削除したい場合...「モデルを間違えて作ってしまった」「後々いらなくなってしまった」など
【ターミナル】
~$ rails d model モデル名
(例)~$ rails d model user
を実行すれば削除される。
もちろん、削除した後でも~$ rails db:migrate
を行って、マイグレーションファイルを更新する必要がある。
#####【補足】・・・よく使うデータ型
データ型 | 入力される値 | 使用例 |
---|---|---|
integer | 整数 | id, 単価, 個数 など |
string | 文字列(256文字以内) | 名前, 住所, 画像, 電話番号(0から始まる) など |
text | 文字列(制限なし) | 自己紹介, キャプション など |
boolean | true / false | 男女設定, はい/いいえの質問, 表示/非表示 など |
float | 小数点以下を含んだ数値 | 数量, パーセンテージ, |
datatime | 日時 | 現在時刻, 登録日時 など |
####③コントローラの作成
②で作成したモデルに付随するアクションコントローラーを作成する。
【ターミナル】
~$ rails g controller コントローラ(モデルの複数形) アクション1 アクション2 ...
(例)~$ rails g controller users new show edit
※コントローラ・・・頭文字:小文字,複数形"
アクション名はターミナルで記載すると、下記が自動で行われるため、時短できる。
また、任意で作成したアクションも記載することはできる。
・Cloud9内で自動で「△△-controller.html.erb」内にアクション名が追加される
・Cloud9内にフォルダが追加されその中に「△△.html.erb」が作成される
#####コントローラを削除したい場合...
モデル同様、コントローラも削除できる。
【ターミナル】
~$ rails d controller モデル名
(例)~$ rails d controller users
を実行すれば削除される。
route.rbファイルにアクション名を追加
route.rb内のファイルにコントローラを記載する。
RESTfulなアクションと任意のアクションで対応が異なるのでそれぞれ説明する。
####【A. RESTfulなアクションのみ使用する場合】
【routes.rbファイル内】
resources :コントローラ名
(例) resources :users
RESTfulなアクションはよく使うため、「resources :△△」の一文のみで下記7つのアクションができる。
反対に、RESTfulなアクションを限定的に使用したい場合、onlyを使用することで、RESTfulを定義しながら他のアクションは稼働しないようにできる。
例えば、
「新規作成と閲覧はできるが、編集・削除ができない」設定の場合、
必要なアクションは「new,create,show」でそれ以外は使用しない。
【routes.rbファイル内】
resources :users, only: [:new, :create :show]
####【補足】・・・RESTfulなアクション一覧
アクション名 | 使用用途 | メソッド |
---|---|---|
new | 新規作成画面 | GET |
create | 新規作成 | POST |
index | 一覧表示 | GET |
show | 詳細画面の表示 | GET |
edit | 編集画面の表示 | GET |
update | 編集 | POST/PATCH |
destroy | 削除 | DELTE |
なお、メソッドについて端的に言うと | ||
・GET : 画面に表示されるもの | ||
・POST,PATCH : 専用の画面はなくコントローラ内のみで使用される | ||
・DELETE : POST,PATCH同様専用画面はない。削除するメソッド |
####【B. 任意のアクションを設定する場合】
RESTfulのものとは一致しないアクションを作成したいときはroutes.rbファイル内に任意のアクション名を追加する。
【routes.rbファイル内】
メソッド 'アクション名' => '保存するファイルの場所'
(例)get 'download' => 'item_images#download'
(例)post 'download' => 'item_images#download'
※'保存するファイルの場所'に指定がなければ "=> '~~~~'"以降は不要
以上!下準備はこれで完了です。
下準備はこれで終わりです、ここから先はコードをご自由に書いてみてください。