Rails: リソースの一括登録画面: 6: 登録グループの削除

前回の続きです。今回はRemoveボタンを画面に配置して、アカウントの登録数を減らせるようにします。追加ボタンと同様に今回のボタンもリンクで実装しておいて、後日スタイリングをアイコンボタンに変更したいと思います。

削除ボタン

自分自身の要素を削除するStimulusのコントローラーを作成します。

bin/rails generate stimulus element-removal

app/javascript/controllers/element_removal_controller.js
remove()が呼ばれたら自分自身を削除します。

import { Controller } from "@hotwired/stimulus"

// Connects to data-controller="element-removal"
export default class extends Controller {
  remove() {
    this.element.remove()
  }
}

app/views/bulk_accounts/_account.html.erb
コントローラーとアクションを記述します。

<%= tag.div data: { controller: "element-removal" }, class: "py-2 px-3 mb-5" do %>
  <a data-action="element-removal#remove">Remove</a>
  <%= fields_for "accounts[]", account do |account_fields| %>
    <%= render "bulk_accounts/account_text_field", account: account, account_fields: account_fields, key: :name %>
    <%= render "bulk_accounts/account_text_field", account: account, account_fields: account_fields, key: :email %>
  <% end %>
<% end %>

課題

子要素が1つの場合は削除ボタンを表示しない。
アイコンボタンに変更する。

以上です。

続きを書きました。

この記事が気に入ったらサポートをしてみませんか?