学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Rails6.0 | 動画学習サイトを作成| 24 | タスク管理

[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関数の記述が入力できます。

タスク登録
タスク登録



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

テスト用タスク登録
テスト用タスク登録



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


[23]プロジェクト管理 << [ホームに戻る] >> [25]プロジェクトコントローラー