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

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

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

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

Q&A

1回答

472閲覧

DBからハッシュで取得できたもののうち、一つを取得したい

sho91

総合スコア13

Ruby on Rails 5

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

0グッド

0クリップ

投稿2019/06/23 03:32

編集2019/06/23 04:48

家計簿アプリ開発中です。

やりたいこと:
今月の現時点の収支状況を表示させたい。

流れ、イメージ
income(収入)テーブルのdateカラムから2019年6月(つまり今月)のレコードを条件とし、amount(金額)カラムの合計値を取得したい。

現在の状況:
{5月の合計金額、6月の合計金額}として取得できています。
ここから6月(今月)の値のみ取得したい。

def index @name = current_user.name time = Time.now this_month = time.month @income_budget = Budget.find_by(month: this_month).income_amount @spending_budget = Budget.find_by(month: this_month).spending_amount 以下問題箇所(月ごとには取得できるが「今年の今月のみ」を条件として取得したい) @current_income = Income.group("YEAR(date)").group("MONTH(date)").select(date: this_month).sum(:amount) binding.pry end

ターミナル 
1165000のみ取得して表示させたい

[1] pry(#<BooksController>)> @current_income => {[2019, 5]=>150000, [2019, 6]=>1165000}

ビュー

.current_income 現在の状況 = @current_income.to_s(:delimited)

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

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

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

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

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

hatsu

2019/06/23 04:40

現在のテーブルは、 monthカラムが月だけを保存、dateカラムが日だけを保存のような形でしょうか? それとも2019-06-14みたいなdateもしくはdatetime型の1つのカラムでしょうか?
sho91

2019/06/23 04:51

dateカラムに2019-06-14という状態です。 (進捗がありましたので、依頼内容を以下の通り、変更させていただいております) 現在、[1] pry(#<BooksController>)> @current_income => {[2019, 5]=>150000, [2019, 6]=>1165000} で取得できています。ここから1165000だけ取得したいという内容です。
guest

回答1

0

「1165000だけ取得したい」というのが [2019, 6] すなわち2016年6月のincomeを得たいということでしたら、
@current_income[[2019,6]]
です。
Hash[]のなかに、keyとなる [2019,6]を入れます。
@current_income[2019,6] では無いです。

投稿2019/06/23 20:22

winterboum

総合スコア23331

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

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

sho91

2019/06/24 06:28

ご回答ありがとうございます。 解決しました! まず@current_income[[2019,6]]にすると、2019年6月の合計金額が確かに取れました。そして、毎月リアルタイムで表示させたいので、@current_spending[[this_year,this_month]]と書き直しました。 this_yearには今年が、this_monthには今月が自動で入るように設定してあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問