環境構築
Docker上にcentOSで作成
参考記事はこれ
(ruby_verは2.4.0に変えて実行、yum -y でnodejs sqlite,sqlite3を追加)
githubにDockerfileはあげた
★Gemfileのcoffeerailsとuglifierはコメントアウトしないと動かなかった。
Dockerのコマンドは以下
- docekr コンテナの作成 docker build -t gotoh/rails .
- 起動(8080ポートで)docker run -i -d -p 8080:3000 -v "${PWD}:/work" --name 'rails' gotoh/rails
- コンテナの中に入るdocker exec -it rails /bin/bash
- 起動しているコンテナの確認 docker ps
- 停止しているコンテナの確認 docker ps -a
- イメージの確認 docker images
- デタッチ(ログイン状態から抜ける) "control + P、Q"
- 再度アタッチ docker attach <CONTAINER IDまたはNAME>
- コンテナの起動 docker start <CONTAINER IDまたはNAME>
- コンテナの停止 docker stop <CONTAINER IDまたはNAME>
- コンテナの削除 docker rm <CONTAINER IDまたはNAME>
- イメージの削除 doker rmi <image ID>
Ruby On Railsの基本
アプリの作成
- railsのアプリ作成
rails new <appName>
- 既に存在するアプリを読み込む
bundle install
- pumaの起動
rails s
orrails server
コントローラーの基本
- railsコマンドでコントローラの作成
rails generate controller <controller name>
- rails destroyで削除
rails destroy congroller <controller name>
- routeの設定 config/routes.rbにルートを設定 詳細は公式
ビューの基本
- ビュー (erb)のみを作成するrailsコマンドはない
- コントローラー&アクション名をrailsコマンドで指定してコントローラー&ビューを自動生成できる。例
# helloコントローラーのshow,indexを生成
rails generate congroller hello show index
共通レイアウトは /app/views/layouts/application.html.erb
モデルの基本
- railsコマンドでモデルの作成
rails generate model <model_name> <field_name>:<type>・・・
- dbのmigrate
rails db:migrate
- テストデータの流し込み
rails db:fixtures:load FIXTURES=<NAME>
参考:データベースクライアント(sqlite)の起動、コマンド
●データベースクライアントの起動
rails dbconsole
●テーブルの一覧を表
.tables
●booksテーブルの構造を確認
.schema books
●booksテーブルの内容を確認
SELECT * FROM books;
●SQLiteクライアントを終了
.quit
Scaffolding機能によるアプリ開発
★ rails --help で使えるコマンド一覧は表示できる。
作成したbookモデルとdbの削除 rails destroy, rails db:drop
rails destroy model book
rails db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1
Scaffolding機能によるアプリケーション作成 rails generate scaffold :type・・・
ex)
rails generate scaffold book isbn:string title:string price:integer publish:string published:date dl:boolean
- マイグレーションファイルを実行
rails db:migrate
- scaffolding機能により、routes.rbに自動で追加される。自動生成された
ルートを確認するのは
rails routes
- フィクスチャのロードは
rails db:fixtures:load
- 現在のテーブルレイアウト(schema.rb)でDBをリセット `rails db:reset DISABLE_DATABASE_ENVIRONMENT_CHECK=1
アノテーション
# TODO:
# FIXME:
# OPTIMIZE:
でメモをコードに残す事ができる。
rails notes
コマンドで表示できる。