[41]trestle << [ホームに戻る] >> [43]trestle | ユーザ管理
管理カテゴリを作成します。
コマンド
rails g migration AddActiveToCategory active:boolean
「db\migrate\20200712031237_add_active_to_category.rb」ファイルを編集します。
記述編集 db\migrate\20200712031237_add_active_to_category.rb
3行目に「, default: true」の記述を追加しています。
class AddActiveToCategory < ActiveRecord::Migration[6.0] def change add_column :categories, :active, :boolean, default: true end end
コマンド マイグレーション適用
rails db:migrate
コマンド
rails g trestle:resource Category
「app\admin\categories_admin.rb」ファイルを以下のように編集します。
記述更新 app\admin\categories_admin.rb
Trestle.resource(:categories) do menu do item :カテゴリー, icon: "fa fa-star" end # インデックスビューに表示されるテーブルの列をカスタマイズします。 table do column :name column :active column :created_at, align: :center actions do |toolbar, instance, admin| toolbar.link '有効化', admin.path(:activate, id: instance.id), method: :post, class: 'btn btn-success' toolbar.link '無効化', admin.path(:deactivate, id: instance.id), method: :post, class: 'btn btn-danger' end end controller do def activate cat = admin.find_instance(params) cat.update(active: true) flash[:message] = "カテゴリーが有効化されました" redirect_to admin.path(:show, id: cat) end def deactivate cat = admin.find_instance(params) cat.update(active: false) flash[:message] = "カテゴリーが無効化されました" redirect_to admin.path(:show, id: cat) end end routes do post :activate, on: :member post :deactivate, on: :member end form do |category| text_field :name end end
ブラウザ確認
http://localhost:3000/admin/dashboard
ダッシュボードにカテゴリーが追加されました。
有効化と無効化を選択できるようになりました。
名前の変更や削除もできます。
↓↓クリックして頂けると励みになります。