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

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

Rails6.0 | 動画学習サイトを作成| 25 | プロジェクトコントローラー

[24]タスク管理 << [ホームに戻る] >> [26]プロジェクトビュー


プロジェクトコントローラを作成します。


コマンド
rails g controller Project index show


app\controllers\project_controller.rb

class ProjectController < ApplicationController
  before_action :set_project, only: [:show]

  def index
  	@projects = Project.all
  end

  def show
  	@tasks = @project.tasks.order(:tag)
  end

	private

    # コールバックを使用して、アクション間で共通のセットアップまたは制約を共有します。
    def set_project
      @project = Project.find(params[:id])
    end

    # 信頼できるパラメータのリストのみを許可します。
    def project_params
      params.require(:project).permit(:name, :content, :price, :active, :description)
    end

end



タスクコントローラを作成します。


コマンド
rails g controller Task show


app\controllers\task_controller.rb

class TaskController < ApplicationController
  before_action :set_task, only: [:show]

  def show
  	project = Project.find(params[:project_id])
  	@tasks = project.tasks.order(:tag)
  end

  private
    # コールバックを使用して、アクション間で共通のセットアップまたは制約を共有します。
    def set_task
      @task = Task.find(params[:id])
    end

    # 信頼できるパラメータのリストのみを許可します。
    def task_params
      params.require(:task).permit(:title, :note, :video, :header, :tag, :project_id, :active, :description)
    end

end



ルートの設定をします。


3~5行目に自動で書かれた記述は削除します。


記述追加 config\routes.rb(17行目)

  resources :project do
    resources :task, only: [:show]
  end



config\routes.rb

Rails.application.routes.draw do

  # ルートを app\views\pages\home.html.erb に設定
  root 'pages#home'

  devise_for :users, 
              path: '', 
              path_names: {sign_up: 'register', sign_in: 'login', edit: 'profile', sign_out: 'logout'},
              controllers: {omniauth_callbacks: 'omniauth_callbacks', registrations: 'registrations'}

  get 'pages/home'
  get '/dashboard', to: 'users#dashboard'
  get '/users/:id', to: 'users#show'

  post '/users/edit', to: 'users#update'

  resources :project do
    resources :task, only: [:show]
  end
  
  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html

end



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


[24]タスク管理 << [ホームに戻る] >> [26]プロジェクトビュー