質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Q&A

解決済

1回答

607閲覧

Ruby on Rails 登録した年月日を取得し、ビューに描画させたい

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

0グッド

0クリップ

投稿2022/01/17 11:07

実現したいこと

現在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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

action index で Item.all していますが、ここを
2020/1月を表示したいなら

month = Time.new(2020,1,1) # としておいて Item.where(created_at: month.beginning_of_month..month.end_of_month)

にしてください

投稿2022/01/17 22:57

winterboum

総合スコア23331

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/01/17 23:35

ありがとうございます、非常に助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問