[23]プロジェクト管理 << [ホームに戻る] >> [25]プロジェクトコントローラー
タスクの管理モデルを作成します。
コマンド
rails g trestle:resource Task
タスクモデルに「有効化」「無効化」を格納するカラムを作成します。
コマンド
rails g migration AddActiveToTask active:boolean
記述追加 db\migrate\20200802105846_add_active_to_task.rb
3行目に「, default: true」の記述を追加しています。
class AddActiveToTask < ActiveRecord::Migration[6.0] def change add_column :tasks, :active, :boolean, default: true end end
コマンド マイグレーション適用
rails db:migrate
「app\admin\tasks_admin.rb」ファイルを編集します。
記述編集 app\admin\tasks_admin.rb
Trestle.resource(:tasks) do menu do item :タスク, icon: "fa fa-star" end table do column :tag column :title column :active column :header column :video actions do |toolbar, instance, admin| toolbar.link '有効化', admin.path(:activate, id: instance.id), method: :post, class: 'bg-success' toolbar.link '無効化', admin.path(:deactivate, id: instance.id), method: :post, class: 'bg-danger' end end controller do def activate task = admin.find_instance(params) task.update(active: true) flash[:message] = "プロジェクトが有効化されました" redirect_to admin.path(:show, id: task) end def deactivate task = admin.find_instance(params) task.update(active: false) flash[:message] = "プロジェクトが無効化されました" redirect_to admin.path(:show, id: task) end end routes do post :activate, on: :member post :deactivate, on: :member end form do |task| check_box :header select :project_id, Project.where(active: true) text_field :tag text_field :title editor :description text_area :note text_field :video end search do |query| if query Task.where("title ILIKE ? OR note ILIKE ?", "%#{query}%", "%#{query}%") else Task.all end end end
ブラウザ確認
http://localhost:3000/admin/tasks
タスクの新規登録が出来るようになりました。

ヘッダーを作成する場合は「header」にチェックを入れます。
タスクを登録するプロジェクトを選択できます。
tagに入れる数字はタスクをソートするときに使用します。
リッチテキストが使用できます。
videoのフィールドにはビデオのコードを入れます。
noteフィールドにはこの後実装するMarkdown関数の記述が入力できます。

テスト用のタスクを登録しておいてください。

↓↓クリックして頂けると励みになります。