本日から勉強再開いたします。
例のごとくドットインストールのRails5の動画を元に学んでいきます!
Scaffoldとは
ひとつの雛形を作成してくれるものらしい。
使用するデータの型などを指定して、自分の作りたいものの土台を作ることができる。
それもコマンド一つで。
これは便利だが、実践ではあまり使わない。
はじめの一歩
newコマンドでディレクトリを作成します。
$rails new myblog
ここで様々なフォルダが作成されるが、メインで使用するのは主に下記3フォルダ
- app(アプリの内容)
- config(様々な設定)
- db(DB操作)
ここで想定外のエラーが
(1ヶ月前は普通に動いていたのに...)
An error occurred while installing nokogiri (1.8.1), and Bundler cannot continue. Make sure that `gem install nokogiri -v '1.8.1'` succeeds before bundling.
なんとか解決方法を見つけましたの、同じ箇所で躓いた方は参考にしてみてください。
モデルの作成
いろいろありましたが、myblogディレクトリが作成できました。
次はモデルの作成を行います。
$rails g model Post title:string body:text
このコマンドでのポイントは下記
- modelの名前は必ず単数系(Post)にする
- stringは1行の文字列
- textは複数行の文字列
そしてデータ構造とデータベースに反映させます。
$rails db:migrate
データの作成(コンソール編)
試しにデータを挿入してみましょう。
下記コマンドでDBコンソールを立ち上げます。
$rails c
そしてコンソールで作成と検索を行ってみます。
--作成 >Post.create(title: 'title', body: 'body') --一覧表示 >Post.all --コンソールの終了 >quit
データが格納されているのが確認できたと思います。
データの確認(sqlite編)
データベースを直接覗いてデータのチェックを行うこともできます。
$ rails db
デフォルトではsqliteが起動すると思います。
下記コマンドでテーブル一覧が取得できます。
>.tables ar_internal_metadata posts schema_migrations
モデルは単数系の'Post'で作成しましたが、
テーブル名はPostを複数格納するため、'posts'になります。
下記コマンドでデータの中身をチェックできます。
select * from posts;
抜ける場合は.quitで抜けれます。
データの管理(ファイル編)
上記ではコンソールからデータを作成しましたが、ファイルで管理することも可能です。
下記ファイルの内容に手を加えます。
myblog/db/seeds.rb
5.times do |i| Post.create(title: "title #{i}", body: "body #{i}") end
上記で定義したデータを流します。
-- テーブルのリセット $rails db:migrate:reset -- データを流す $rails db:seed
これで5つのデータが作成されます。 初期データの設定などには使えると思います。
本日はモデルの作成を行いました。
次回はコントローラの作成を行って行こうと思います。