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

草野球の出欠確認Webアプリを作ろう! part.3

Last updated at Posted at 2021-04-27

これから作っていく簡単なWebアプリの作成メモ(自分の備忘)です。
自分用なのであまり凝りすぎないように書いていきたい。

<<前回の記事

##今回やったこと

###スケジュールコントローラーほかの生成

前回作成したScheduleモデルに対応するコントローラーやビューを作成していく。
あまりまとまった作業時間をとれていないので、ひとまず見た目や機能は気にしないで動くものを作っていこう。
(でも思いつきや寄り道は大事にしたいジレンマ、、、)

$ bin/rails g controller Schedules index show new create edit update delete

生成されたルーティングを以下のように書き直す(個人の好みの問題)。

config/routes.rb
Rails.application.routes.draw do
  # ルート
  root "users#index"

  # Users
  resources :users

  # Schedules
  resources :schedules
end

Users#indexのビューを作った時とほぼ同じものをコピペで作成した。
(以前views/users/index.html.erbを作った際にはif文の条件を@users.empty?としていたが、何か新しいアクションを追加したときにNoMethodErrorでシステムエラーを起こしたくないので@schedules.blank?として@schedulesnilになってしまうことに備えた。)
(本当は業務アプリでは上記のような「想定外を想定してゆるく作る」のはNGだと思うが、今回は遊びの面が強いのでなるべく作りの甘さが出ても動いてくれるようにしていきたい)

views/schedules/index.html.erb
<h1>チームの予定一覧</h1>
<% if @schedules.blank? %>
  <div><%= "表示できる予定がありません。" %></div>
<% else %>
  <div class="table_card">
    <table align="center">
      <thead>
        <tr>
          <th>件名</th>
          <th>予定日</th>
        </tr>
      </thead>
      <tbody>
        <% @schedules.each do |lst| %>
          <tr>
            <td><%= lst.title %></td>
            <td><%= lst.date_of %></td>
          </tr>
        <% end %>
      </tbody>
    </table>
  </div>
<% end %>

コントローラーも以下のように追記した。

controllers/schedules_controllers.rb
def index
  @schedules = Schedule.all
end

ぎりぎり動く程度の実装はできたので、動作を確認する。
以下は動作確認のためのroot変更。

config/routes.rb
# ルート
# root "users#index"
root "schedules#index"

上記によって、Railsサーバーに最初に接続したときのページがschedules/index.html.erbになる。

予定一覧の試作1

Rails6のデフォルトで、development環境ではプロファイラが表示される。
画面ハードコピーを取得する際に邪魔だったので、以下の記事を参考にAlt+pで非表示にした。
rails viewのプロファイラを非表示

他にも以下の記事のように、Railsサーバー起動時にデフォルトで表示されないようにできるらしい。
rack-mini-profilerの計測結果がWebページに表示しないようにする

ふだんメインで使っているのはRails5.2.5なのでrack-mini-profilerを意識することがなかったが、かなり便利そうなので常時非表示にするのは惜しいと思いました。
そのため、rack-mini-profilerのREADMEを参考に、以下のようにして表示位置を右下にしてみた。

config/environments/development.rb
require "active_support/core_ext/integer/time"

Rails.application.configure do
 (中略)
  # rack-mini-profilerを右下に置く
  Rack::MiniProfiler.config.position = 'bottom-right'
end

1.jpeg

気に入ったので、しばらくこれでいってみようと思います。
(development.rbに記述した内容が反映されるのは、Railsサーバーの再起動時という点に注意)

今日も短いけどここまで。
次回の記事>>

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