画面遷移図を書こう
人の記憶は儚いもので、各所に散らされたコードを見てもなんら思い出せることがない。githubのコミット履歴には確実に残っているが、そのときの私の思いはどこにあるのだろう。個人開発の記録を少しずつ記していく。
画面遷移図を書いた。drawioという便利なソフトがあった。vscodeの拡張機能としても利用できたので大変ありがたい。
この記事にとても詳しく書かれている。
https://qiita.com/riku-shiru/items/5ab7c5aecdfea323ec4e
drawioの操作感はわりと優れている。さっさと好きな絵がかける。githubにも図形がそのまま反映されるといいな。なにか方法があるはずだ。
とりあえず風呂敷は広げるべきだ。まだ実装できないところもとりあえず書いておく。そうすれば後々いい思い出になるはず。
ログイン機能の実装
さっそくログイン機能を作ろう。これはdeviseというgemをつかう。Gemfile
にgem 'devise'
を追加してコマンドラインでbundle install
を行う。
あとの詳しい設定はこちらの記事にある。
https://qiita.com/salvage0707/items/d3ddc889458ac186e62e
いろいろ書いてあるが、「4, viewファイルの生成」まで行えば問題ない。 (私はモデル作成のコマンドを rails g devise user
とした。)
htmlの表示を変更しよう。app/views/layouts/application.html.erb
を変更する。
<!-- 略 -->
<body>
<% if user_signed_in? %>
<%= link_to "ログアウト", destroy_user_session_path, method: :delete %>
<% else %>
<%= link_to "ログイン", new_user_session_path %>
<%= link_to "新規登録", new_user_registration_path %>
<% end %>
<%= yield %>
</body>
<!-- 略 -->
よく調べていないが、このapplication.html.erbというのは全てのビューファイルの根幹になるものらしい。手打ちでHTMLをやっていたころにフレームページをつくったがそれに似ている。上記の <%= yield %>
に各ファイルの内容が表示されるようだ。
<% if user_signed_in? %>
という文を書くことで、ログインしているかどうかで表示を変更できるようにしている。
link_to記法はよく使われるものなので勉強したい。
<%= link_to 'link', パス名 %>
linkが表示される文字、パス名に行き先を設定する。パス名はコマンドラインでrails routes
とやると現在設定されているパスの一覧が表示されるので、それを参考にして欲しい。
↓ rails guideに詳しい記述があった。
おわり
ちょっとずつ記憶が掘り起こされてきた感がある。これでログイン/ログアウトができるようになったので、ちょっとユーザーのサンプルデータをつくってみよう。seed.rbとかいうファイルに設定すればいい。それが終わったら今度はモデルの関連付けをする。これが曲者だった。