ギークなエンジニアを目指す男

機械学習系の知識を蓄えようとするブログ

ドットインストールで作るブログアプリその1(RubyonRails)

本日から勉強再開いたします。

例のごとくドットインストールの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.

なんとか解決方法を見つけましたの、同じ箇所で躓いた方は参考にしてみてください。

taxa-program.hatenablog.com

モデルの作成

いろいろありましたが、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つのデータが作成されます。 初期データの設定などには使えると思います。

本日はモデルの作成を行いました。
次回はコントローラの作成を行って行こうと思います。