[Rails 5.2 で簡単なWikiサイトを作る](Rails 5.2 で簡単なWikiサイトを作る) - Part2
Rails 5.2 で簡単なWikiサイトを作る を作るの続きです。
環境
Rails 5.2.2
ruby 2.5.1p57
psql (PostgreSQL) 10.4
前提条件
本記事では、Rails、ruby、PGのインストールの内容を含みません。
はじめに
この記事では、Active Record マイグレーションでコンテントデータベースを作ります。
カラム | 型 | 説明 |
---|---|---|
title | string | タイトル |
body | text | 本文 |
is_published | boolean | 公開フラグ |
contents
テーブルでは、ベーシックにこんな感じにしてみようと思います。
Rails Generate コマンドを用いて、テーブルを作成します。参考
$ rails g model Content title:string body:text is_published:boolean
invoke active_record
create db/migrate/20190429022702_create_contents.rb
create app/models/content.rb
マイグレーションして、データベースにテーブルを作成します。
$ rails db:migrate
== 20190429022702 CreateContents: migrating ===================================
-- create_table(:contents)
-> 0.0076s
== 20190429022702 CreateContents: migrated (0.0077s) ==========================
ついでに、 便利な annotate gem も使ってみましょう。modelファイルや、controllerファイルの上部にカラムを追記してくれます。
group :development do
...
+ gem 'annotate'
end
Gemfileにannotate
を追加したら、bundle install
です。
さらに、annotateをinstallしておきます。
$ bundle install
...
$ rails g annotate:install
create lib/tasks/auto_annotate_models.rake
annotate
が使えるようになったので、もう一回 rails db:migrate
します。
$ rails db:migrate
Annotated (1): app/models/content.rb
./app/models/content.rb
だけ中身を見てみます。こんな感じに、上部にテーブルの内容を追記してくれます。
# == Schema Information
#
# Table name: contents
#
# id :bigint(8) not null, primary key
# body :text
# is_published :boolean
# title :string
# created_at :datetime not null
# updated_at :datetime not null
#
class Content < ApplicationRecord
end
さらに、db/schema.rb
も見ておきましょう。
ActiveRecord::Schema.define(version: 2019_04_29_022702) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
create_table "contents", force: :cascade do |t|
t.string "title"
t.text "body"
t.boolean "is_published"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
最後に
NEXT!
次は、Contentリストページを作っていきます。
Wikiサービス作りました
(小さく告知させてください)
簡単なWiki検索を、社内コミュニケーションチャネルから検索できるツールで、「Poii.io」と言います。