🏷️
[投稿に複数Tag] 編集編
前回の続き!!
実装したい事
1.1つの投稿に対して複数のタグをつけたい
2.詳細画面で複数表示されるようにしたい
3.編集画面でタグを一気に付け替えれるようにしたい
4.タグで検索できるようにしたい
(5.タグ検索を複数でできるようにしたい)
3.編集画面でタグを一気に付け替えれるようにしたい
controller
def edit
@post = Post.find(params[:id])
end
def update
@post = Post.find(params[:id])
if @post.update(post_params.except(:tag_ids))
@post.tags = Tag.where(id: params[:post][:tag_ids].reject(&:blank?))
flash[:post_edit_notice]="正常に変更内容が反映されました"
redirect_to admin_post_path(@post)
else
render edit
end
end
controllerはcreateと同じ😺助かるなあ!!
続いて出力!
<%= form_with(model: @post, url: admin_post_path(@post), method: :patch, local: true) do |form| %>
<% end %>
の中にnewと同じもの入れるだけでした。。変わったところで言うと2列で並べたかったので、rowで区切って、col-6にして2つに区切った事くらいかな??
<div class="card mb-3">
<div class="card-body">
<%= form.label :tag_ids, "タグ" %>
<div class="row">
<% Tag.all.each_with_index do |tag, index| %>
<div class="col-6">
<%= form.check_box :tag_ids, { multiple: true }, tag.id, nil %>
<%= tag.name %>
</div>
<% end %>
</div>
</div>
</div>
出力結果が💁♀️
前章で述べた'nil'のおかげでちゃんと投稿時(または最新)のタグにはチェックがついてました🕺
うまくいってよかったー。検索機能が山場だなぁ。。。。。
Discussion