ブックマーク機能追加に取り掛かって3日目です。見栄えが少し悪いですが、記事にあるボタンを押すことでデータベースに登録し、一覧が可能。また一覧からボタンを押すことでデータベースから削除という主な機能が追加できました。
JavaScriptからfetchを使って/bookmarkのPOSTやDELETEを叩こうとするとリダイレクトによって失敗していましたが、これはCSRF対策で処理されていたので例外として追加したら何の問題もなくなりました。
インターンシップでフロント側からJavaScriptを使ってサーバのAPIを叩いて処理を返すというのをやったので、今回はかなりスムーズに進んでいます。絵文字機能の追加はやったことがなかったので苦戦しましたが、なんとかなりそうです。
---
GET、POST、DELETEを/bookmarkで叩けるのでコントローラーは100行程度しかなく、モデルは殆ど従来のコードの寄せ集めなので200行ほどです。MVCであるかというと微妙ですが、かなり簡素に書けているのでメンテナンスは難しくなさそうです(当社比)。
一覧するページではブックマークされたものがデータベースから読み出されるので、ボタンはブックマーク済みを表すのが初期値になっていますが、個別記事でブックマークした後再度読み込むとブックマークしていないマークが表示されてしまうので、ユーザが個別記事を見るときに登録済みかどうかを読み出す必要があります。
デザインに関してはからっきしなので、一覧のページが登録した順の文字列だけになっていますが、あとで読み返す時目当ての記事までスクロールしなければならないのはUXとして悪いので、記事タイトルや記事概要に含まれる文字列で検索できるような機能を追加する予定です。