投稿記事に公開・非公開機能をラジオボタンで実装したので記録を残します!
間違っている箇所があればご指摘頂けると大変助かります(_ _).。o○
前提
・Deviseログイン機能実装済
・Postテーブルにboolean型でカラム追加(今回のカラム名:is_published_flag)
Postモデルに条件式を定義
/app/controllers/posts_controller.rb
class Post < ApplicationRecord
belongs_to :user
# 公開・非公開機能
scope :published, -> {where(is_published_flag: true)}
scope :unpublished, -> {where(is_published_flag: false)}
~省略~
end
scope :スコープの名前, -> { 条件式 }
公開・非公開を見分けられるように条件式を書きます。
Postsコントローラー
/app/controllers/posts_controller.rb
class PostsController < ApplicationController
before_action :authenticate_user!, only: [:create, :edit, :update, :destroy]
def index
@posts = Post.published
end
~省略~
一覧ページのindexには、公開された記事のみ表示させたいので、@post = Post.published
とします。
ラジオボタンの実装
true,falseで値を送信
true:publish
false:unpublished
~省略~
<div>
<%= f.label :is_published_flag, "公開", value: true %>
<%= f.radio_button :is_published_flag, 'true' %>
</div>
<div>
<%= f.label :is_published_flag, "非公開", value: false %>
<%= f.radio_button :is_published_flag,'false' %>
</div>
~省略~
以上のコードで無事に公開・非公開機能を実装しましたฅ( ˙꒳˙ ฅ)