実現したいこと
現在Ruby on Railsにおいて、「買いたい物を、金額及び買うタイミングを連携して記録できる」という簡単なメモアプリケーションのようなものを作成しております。
簡単に機能を説明すると
①フォームにて買いたいもの・金額・買うタイミングを入力。
②買いたいもの一覧にて、上記の一覧と、合計金額を描画する。
という内容となっております。
買いたいものはname:string、金額はprice:integer、買うタイミングはbuy_month:dateでデータベースに保存しておりますが、今回実現したい事としては、
【2022年1月に買いたいもの一覧】
名前:
金額:
2022年1月に買いたいもの合計金額:
のように登録データの期間を絞って表示できないかと考えております。
どなたかアドバイスをいただけると幸いです。
コード
登録フォームのHTML
html
<div class=“center jumbotron”> <h1>欲望の塊め!欲しいものを入れていくがよい!</h1> </div> <div class="new_form"> <%= form_with(model: @item, local: true) do |f| %> <%= f.label :name, '欲しいもの' %> <%= f.text_field :name %> </div> <div> <%= f.label :price, '金額(半角で入れてね!)' %> <%= f.text_field :price %> </div> <div class=“buy_month”> <%= f.label :買うタイミング %> <%= f.date_select :buy_month, { use_month_numbers: true, start_year: (Time.now.year), end_year: 2030, date_separator: '/' } %> </div> <%= f.submit "欲しい!", class: "btn btn-primary" %> <%= link_to "BUTSUYOKU一覧", '/items/index' %> <% end %> </div>
買いたいもの一覧のHTML
html
<ul> <% @items.each do |item| %> <li>欲しいもの : <%= item.name %></li> 金額 : <%= item.price %>円 <%= item.buy_month %>に買います <%= link_to "削除", '/items/' + item.id.to_s, method: :delete %> <% end %> </ul> <div class=“index”> <p>君の物欲合計金額は...<%= @ItemsAllSum %>円</p> <p><%= link_to "まだ何か欲しいの?", '/' %><p> </div>
コントローラー
rb
class ItemsController < ApplicationController def new @item = Item.new end def show @item = Item.find(params[:id]) end def index @items = Item.all @ItemsAllSum = Item.all.sum(:price) end def create @item = Item.new(item_params) if @item.save flash[:success] = "欲しがりさんめ!" redirect_to '/items/index' else flash[:danger] = "何ゆーてますの?" render 'new' end end def destroy @item = Item.find(params[:id]) @item.destroy redirect_to '/items/index' end private def item_params params.require(:item).permit(:name, :price, :buy_month) end end
まだ回答がついていません
会員登録して回答してみよう