はじめに
皆さんにお聞きします。
何か不幸な体験をして、それを友達や家族に話したとき、一度は「同情するなら金くれよ!!」と思ったことあるのではないでしょうか?
そんな不幸な体験をされた人たちが「少しでも報われたら」という思いでクソアプリを作りました。
アプリの使い方
自分が体験した不幸を投稿し、twitterでシェアします。
「みんなの不幸一覧」を押すと、投稿された記事を全て見ることができます。
記事を選択して詳細画面の中にある「¥100」ボタンを選択すと、投稿された記事に非同期でお金が入るようになっています。
この処理を一番こだわりました。
「¥100」ボタンのコードの中身
「¥100」ボタンの中身のコードはこんな感じになっています。(コード汚くてごめんなさい...)
boards_controller
def likes
@board = Board.find(params[:board_id])
@like = @board.likes + 100
@board.update(likes: @like)
end
show.html.erb
<span id="js-board-likes-<%= @board.id %>"><%= @board.likes %></span>
<%= link_to board_likes_path(@board), class: "level-item", method: :post, remote: true do %>
<button class="btn-circle-3d-emboss button is-large fas fa-yen-sign mt-3 mb-6">100</button>
<% end %>
下記記述でパッと見ダブルクオーテーションが変な位置についてるように見えますが、Rubyのコードが反映されるようにしています。
$("#js-board-likes-<%= @board.id %>").replaceWith("<span id=js-board-likes-" + <%= j(@board.id) %> + ">" + <%= j(@board.likes) %> + "</span>");
使用技術
バックエンド
- Ruby 2.7.2
- Rails 6.1.4
フロントエンド
- HTML
- CSS
- jQuery
- BULMA
主要なgem
- rubocop
- pry-rails
- pagy
- meta-tags
- webpacker
デプロイ
Heroku
データベース
PostgreSQL
最後に
今回製作したアプリは、元々CRUDの復習を目的としていて、アプリとしてリリースする予定はありませんでした。
実装していく過程で少しずつプログラミングの楽しさを感じることができ、「2週間で作り切る」という目標を掲げてリリースしたことで、一つ自信に繋げることができました。
次作も「締切駆動開発」を意識し、また人に遊んでもらえるサービスを作っていきたいと思います。
最後まで読んでいただきありがとうございました。
Twitter:https://twitter.com/wataru_pgm