技術的なこと
いい加減技術的なことを書かないといけない。renderメソッドを使って、似通ったページを集約することを考えよう。メリットはメンテナンスが楽になる、ということ。デザインや文面を変更するときに、修正する箇所が少なくなる。
目標の登録画面と、編集画面を一緒にした。
<%= render "layouts/header", title: "目標登録" , bg_color: "primary" %>
<%= render "form" ,title: "登録"%>
<%= render "layouts/header", title: "目標編集" , bg_color: "primary" %>
<%= render "form" ,title: "編集"%>
こんなふうに書いている。レンダリング先のページも必要。
解説
renderメソッドは「表示させるviewファイルを指定して表示」するメソッドである。(ドキュメントより)。
さきのコードではviews/plans/new.html.erb
から views/layouts/_header.html.erb
とviews/plans/_form.html.erb
を参照している。
また、title
とかbg_color
と書いているが、こうやってインスタンス変数をつくって、飛んだページで参照することができる。たとえば_header.html.erb
は以下のように書いている。
<header id="main-header" class="py-2 sub_header bg-<%= bg_color %> text-white">
<div class="container">
<div class="row">
<div class="col-md-6">
<h4><i class="fas fa-cog"></i><%= title %></h4>
</div>
</div>
</div>
</header>
<%= bg_color %>
はbootstrapを適用した時に使う、背景色の指定だ。primary
とかそんなのが入る。
<%= title %>
に目標編集とか目標登録とか、そんな文面が入る。
整理とか集約とか
開発も落ち着きつつあって、次はデザインの修正やテストの充実とか、そんなことをやっていくフェーズになってきた。日々コードを書いていく。