LoginSignup
0
1

More than 5 years have passed since last update.

Ruby on Rails5 アプリケーションプログラミングを読んで まとめ (1)基本

Last updated at Posted at 2017-12-13

環境構築

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 or rails 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 コマンドで表示できる。

0
1
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
1