#draft publishedとは
draftは下書きのことです。
publishedは公開のことです。
statusは状態のことです。
下書きをしたり 、書いた記事を公開したりする時に使います。
statusは
またenum(列挙型)と合わせて使われることがよくあります。
enumの資料です。
⚫︎参考資料
https://qiita.com/shizuma/items/d133b18f8093df1e9b70
#下書き記事と公開記事を作成
下書き記事と公開記事を作成を作成するには、modelのarticle.rbなどに
enum,status,draft,published
を使います。
これは記事の状態を表す記述です。
enum status { draft: 0, publishe: 1}
他にもこのような書き方があるみたいです。
enum status { draft: "draft", published: "published"}
削除も入れる時はdeleted
も記述できるみたいです。
enum status { draft: 0, published: 1,deleted: 2}
配列で表すと下のようにできるみたいです。
enum state: [:draft, :published, :deleted]
#データベースに記事を保存しておくためのstatusカラム追加
$ rails g migration AddStatusToArticles status:integer
⚫︎補足
integerはstringでも使えるみたいです。
draft: "draft"のような書き方をした場合。
statusカラムの追加をするために、
*******_add_status_to_articles.rbに下のように追記します。
class AddStatusToArticles < ActiveRecord::Migration[6.0]
def change
add_column :articles, :status, :integer, default: 0, null: false
end
end
他にも
add_column :articles, :status, :string, default: "draft"
みたいなやり方もあるみたいです。
status:integerのintegerをstringにしたら上記みたいにもできるみたいです。
マイグレーション実行(データベース反映)
$ rails db:migrate
⚫︎最後に
この辺のやり方で下書き保存機能はできました。
開発している環境によって変わってくる場合があるので、
参考にしてみてください。
⚫︎参考資料
https://pgmg-rails.com/blogs/21
https://www.autovice.jp/articles/124?tag_id=41
https://qiita.com/shimadama/items/798f3f02058b6f91a248
https://kimuraysp.hatenablog.com/entry/2017/01/07/102403