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