Rails日記Appの制作 ~自動ルーティング~
自動ルーティング
RESTfulな設計に従ってアプリケーションを作る場合、Railsではルーティングを自動で行わせることができる
RESTfulな設計に従ってアプリケーションを作る場合、Railsではルーティングを自動で行わせることができる
# routes.rb resources : リソース名(今回はcontroller名) resources: リソース名, only: [:index, :new, :create, :show]
- 詳細ページへのリンクの書き方
<!-- 追加 post オブジェクトを指定することで、そのページの詳細画面を表示させることができる--> # link_toのid以降の書き方なんだこれ <td><%= link_to '詳細', post, id: "detail-" + post.id.to_s, class: 'btn btn-outline-info' %></td>
# ルーティング設定状況の確認 ~~/rails/info/routes
# 普通に post.id だけでいけた。ソースを分かりやすくするために、文字列結合させて' detail-1' とかになるようにしてるみたい <td><%= link_to '詳細', post, id: post.id, class: 'btn btn-outline-info' %></td>
link_toメソッドの使い方
- 【methodオプションを指定する例】
<%= link_to “削除”, member_path(params[:id]), method: :delete %> methodオプションではHTTPメソッドの種類を指定します。何も指定しなければGETになります。
- 【属性を指定する例】
<%= link_to “TOP”, root_path, class: “menu” %> これは、aタグの<a href=”/” class=”menu”>のようなタグになります。
分からなかったとこ
- renderメソッドってどういうときに必要か?
- パーシャルで変数を呼び出すときに、インスタンス変数でないのはなぜか?
<!-- @post ではないのか --> <h4><%= post.title %></h4>
これらがだいぶ謎。あとで調べよ
<!-- newアクションのビューを呼ぶとき --> <%= render partial: 'form', locals: { post: @post} %> <!-- shiwアクションのビューを呼ぶとき --> <%= render @post %> これでも呼べてた <%= render partial: 'form', locals: { post: @post} %>
パーシャルファイル化するメリット
- 共通の処理をまとめられる
- controllerからビューを切り離す[これ!]
この観点から言うと、 pathとlocals: {} を使った書きかたの方が切り離しができているとのこと。
なぜ。
qiita.com
突破したい
controllerの変数の疑問は、単に変数のスコープの違い(インスタンス変数として使いたいか、ローカル変数として使いたいか)であった