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

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

【学習5.0】【MacOSX】コントローラ

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


コマンド
rails g controller Project index show


app\controllers\project_controller.rb

class ProjectController < ApplicationController
  def index
  	@projects = Project.all
  end

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



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


コマンド
rails g controller Task show


app\controllers\task_controller.rb

class TaskController < ApplicationController
  def show
  	project = Project.find(params[:project_id])
  	@tasks = project.tasks.order(:tag)
  	@task = @tasks.find(params[:id])
  end
end



ルートの設定をします。


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


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

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



config\routes.rb

Rails.application.routes.draw do

  devise_for :admin_users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)
  
  devise_for :users, 
              path: '', 
              path_names: {sign_up: 'register', sign_in: 'login', edit: 'profile', sign_out: 'logout'},
              controllers: {omniauth_callbacks: 'omniauth_callbacks', registrations: 'registrations'}

  # ルートページをapp\views\pages\about.html.erbに設定
  root 'pages#about'  
  
  get 'pages/about'

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

  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end