LoginSignup
0
1

More than 3 years have passed since last update.

コントローラーとビュー

Posted at

モデルが作成できたので、次はコントローラーとビューを実装しましょう!

コントローラーもジェネレーターで作成できます。

書式
$ bin/rails g controller コントローラー名 [アクション名 アクション名 アクショ...] [オプション]

さて、どの様なアクションが必要でしょう、作りたいのはタスクのCRUD機能です。

URLの例 HTTPメソッド アクション名 機能名 役割
/tasks GET index 一覧表示 全タスクを表示する
/tasks/17 GET show 詳細表示 特定のIDのタスクを表示する
/tasks/new GET new 新規登録画面 新規登録画面を表示する
/tasks POST create 登録 登録処理を行う
/tasks/17/edit GET edit 編集画面 編集画面を表示する
/tasks/17 PATCH,PUT update 更新 更新処理を行う
/tasks/17 DELETE destroy 削除 削除処理を行う

URLやHTTPメソッドはユーザーのWebブラウザからアプリケーションに向けて特定したアクションに処理をさせる。

★controllerを作ってみよう。

controllerのジェネレーターでアクションを指定すると、アクションと同名のビューも作ってくれます。
★ちょっとしたコツ★
HTTPメソッドがGETのアクションは同名のビューを使うことが多いと言う法則があって
HTTPメソッドがGETとなるアクション名をジェネレーターのコマンドの引数として指定するのが効果的。

上の表を参考に、GETアクションのindex,show,new,editの4つを指定してジェネレートコマンドをする。

$ bin/rails g controller tasks index show new edit

今回はパターン通りのルーティングを一括設定したいので、config/routes.rbから4つのアクションの設定を消します。

#下記を消します。
get 'task/index'
get 'task/show'
get 'task/new'
get 'task/edit'

代わりに

resources :tasks

resourcesメソッドは上記表の全てのアクションに関するルーティングを一括で設定してくれます。

追加で、同じ場所にルートパスを設定します。
Railsのデフォルト画面ではなく、タスク一覧が表示される様にしてみましょう。

Rails.application.routes.draw do

root to: 'tasks#index'
resources :tasks
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1