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 1 year has passed since last update.

たったひとりの個人開発Advent Calendar 2022

Day 20

renderメソッドで複数のページを集約する

Posted at

技術的なこと

 いい加減技術的なことを書かないといけない。renderメソッドを使って、似通ったページを集約することを考えよう。メリットはメンテナンスが楽になる、ということ。デザインや文面を変更するときに、修正する箇所が少なくなる。

 目標の登録画面と、編集画面を一緒にした。

app/views/plans/new.html.erb
<%= render "layouts/header", title: "目標登録" , bg_color: "primary" %>
<%= render "form" ,title: "登録"%>
app/views/plans/edit.html.erb
<%= 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 は以下のように書いている。

app/views/layouts/_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 %> に目標編集とか目標登録とか、そんな文面が入る。

整理とか集約とか

 開発も落ち着きつつあって、次はデザインの修正やテストの充実とか、そんなことをやっていくフェーズになってきた。日々コードを書いていく。

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?