自分は初学者なので、新しいものを勉強しては基礎を忘れる段階にいます。
なので自分用に備忘録として忘れちゃいけないRails開発の基礎の基礎を記録しておきます。
#MVCアーキテクチャ
http://〜
↓
Routes.rbファイルでルーティングを確認
↓
(C)コントローラでアクションの確認→(V) 対応するアクションのビューファイルをとってくる
↓
(M)モデルとやりとりする(モデルはアプリケーションの根幹となる部分)
だから開発の流れは基本的に
ルーティング設定する→コントローラでアクション設定する→そのアクションに対応するビュー作る。
#$rails routesで今設定されてるルーティングが確認できる
routes.rbにrootとか設定したら、$rails routesでルーティングの確認してみて。
Rails6以降なら--expandedオプションつけてもっと詳細も確認できる。
####主な使い所 redirect_toのpath指定先チェック
createアクションでフォームに入力された値を取ってきてDBに保存&そのデータを表示するshowアクションにredirectしたい
↓
rails routesで確認。
Prefix | Verb | URI Pattern | Controller#Action |
---|---|---|---|
article | GET | /articles/:id(.:format) | articles#show |
↓
article_pathで飛ばせる。
でもURIパターンが/articles/:id(.:format)
になってるから、
この場合はarticle_path(@article)になる。
そしてこれショートカットで@articleだけでも同じ結果になるらしい。
#railsコンソールでコントローラに書いてること確認できるよ
コマンドで$rails c
すると、irb> が起動される。
articleモデルがあるならarticle.allとかarticle.findとかできるので、そこでとってきたいデータがとれるか確認したらコントローラに書けばおk。
当たり前だしほんとはコンソールで動き確認しつつ開発するのが普通だと思うんだけど、やり方覚えちゃうとついつい忘れがち。気をつけるっ
#コントローラ名は_で繋げる&複数形だよ。
(例)
articles_controller.rb
pages_controller.rb
一回_じゃなく.でつなげちゃって、永遠エラーに悩まされるという初歩的なミスをやらかしたので注意!
#deleteとdestroyの違い
deleteはActiveRecord(RubyとSQLの翻訳機)を介さずに削除する。
destroyはActiveRecordを介して削除する。
#viewで使いまくりなテーブルの作り方
tableの中にthead, tbodyからの中にtr、thの流れ。
<table>
<thead>
<tr>
<th>Title</th>
<th>Description</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<% @articles.each do |article| %>
<tr>
<td><%= article.title %></td>
<td><%= article.description %></td>
<td>placeholder</td>
</tr>
<% end %>
</tbody>
</table>
ちなみにslim導入時での書き方は以下。
table
thead
tr
th
| Title
th
| Description
th
| Actions
tbody
- @articles.each do |article|
tr
td
= article.title
td
= article.description
td
| placeholder