1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Ruby on Rails5 アプリケーション プログラミング]学習ログ#2[2019/12/12]

Last updated at Posted at 2019-12-12

前回 -> [Ruby on Rails5 アプリケーション プログラミング]学習ログ#1[2019/12/11]
次回 -> [Ruby on Rails5 アプリケーション プログラミング]学習ログ#3[2019/12/13]


#目的

Progateで学んだことをローカル環境で手を動かして復習することで、基礎を固める

#使用する教材
###山田祥寛(2017). RubyonRails5 アプリケーションプログラミング 株式会社技術評論社

#Q.「RubyonRails5 アプリケーションプログラミング」とは?
#A.ProgateのRoRコースを終えた後にするRoRの勉強としておすすめされている本

出典
(Samurai Blog / Ruby on Rails学習本おすすめ6選【入門者〜上級者までレベル別に解説】)[https://www.sejuku.net/blog/110292]


#今日やったこと
##Scaffolding機能によるRails開発の基礎(p64~p102)
前回とは異なり、コマンドを打っていろいろ生成していくのではなく自動的に生成されたファイルを一通り巡ってこのアクションは何ができるのかを見ていきました。

###0. Scaffolding機能とは?
Scaffolding(足場)機能 -> 手軽にCRUD機能を持ったアプリケーションを構築できる機能

CRUD(Create-Read-update-Delete)とは、永続的なデータを取り扱うソフトウェアに要求される4つの基本機能である、データの作成(Create)、読み出し(Read)、更新(Update)、削除(Delete)の頭文字を繋げた語。

出典 IT用語辞典 e-Words / CRUD

console
# Scaffolding機能を利用
rails g(enerate) scaffold name field:type ・・・
-----------------------------------------------
name:モデル名  field:フィールド名  type:データ型

# マイグレーションによるテーブルの作成
rails db:migrate

#自動生成されたルートを確認
[routes.rb]
 resources :names を追記
[console]
rails routes

| 呼び出すアクション |HTTPメソッド | 役割                             |
|------------------|-------------|---------------------------------|
| index            |GET          |一覧画面を表示                    |
| show             |GET          |個別詳細画面を表示                |
| new              |GET          |新規登録画面を表示                |
| create           |POST         |新規登録画面の入力を受けて登録処理  |
| edit             |GET          |編集画面を表示                    |
| update           |PATCH / PUT  |編集画面の入力を受けて更新処理     |
| destroy          |DELETE       |一覧画面で指定されたデータを削除処理|

###1.indexアクション -> トップページを生成するためのアクション

アクション名 テンプレートファイル名
books#index index.html.erb

ビューヘルパーとは?

  • テンプレートファイルを記述する際に役立つメソッドの総称
  • ビューでよく利用する操作をシンプルにコードで記述可能
例. 与えられた引数を元にハイパーリンクを生成する
link_to(body, url[,html_options])
---------------------------------
body:リンクテキスト url:リンク先のパス html_options:<a>要素に付与する属性
(html_optionsにdata: {confirm: 'message'}を指定すると、リンククリック時に確認ダイアログが表示される)

###2.showアクション -> 詳細画面の作成

アクション名 テンプレートファイル名
books#show show.html.erb

###3.new / createアクション -> 入力フォームの表示(new)、データの登録処理(create)を行う

アクション名 テンプレートファイル名
books#new new.html.erb

部分テンプレートとは?

  • メインテンプレートから呼び出される断片的なテンプレートのこと
  • ファイル名の先頭に「_」を付けて、このファイルが部分テンプレートであることを宣言する
  • 各フォーム画面の共通部分を部分テンプレート化することで同じコードを重複して書く必要がなくなる
特定のモデルを編集するためのフォームを生成する
form_for(model) do |f|
  ・・・body・・・
end
---------------------------------
model:モデルオブジェクト body:フォームの本体
引数で指定されたパスへリダイレクトさせる
redirect_to url
---------------------------------
url:リダイレクト先のパス

###4.edit / updateアクション -> 編集フォームを表示(edit)、データの更新処理(update)を行う

アクション名 テンプレートファイル名
books#edit edit.html.erb
既存のオブジェクトを更新させる
update(attrs)
---------------------------------
attrs:更新データ(「プロパティ名:値」 の形式)

###5.destroyアクション -> データの削除
URL経由で渡されたパラメータをキーにオブジェクトを取得し、削除する


1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?