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

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

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

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

Q&A

解決済

1回答

1090閲覧

DBからハッシュで取得したもののうち1つだけ取得したい(他の値ではできた)

sho91

総合スコア13

Ruby on Rails 5

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

0グッド

0クリップ

投稿2019/06/25 09:47

家計簿を開発中です。

やりたいこと:
ビューで年・月を選択するとカテゴリーごとに合計金額が表示される。
まず、income_categories_id(給与)で試しに処理の流れを作ってみました。

問題:
DBからハッシュ形式で月ごとの合計値は取れましたが、ビューで選択した年・月の分だけが欲しいのですが抽出できません。

def show @name = current_user.name @search_year = params[:year] @search_month = params[:month] #収入計算 @income_detail_saraly = Income.group("YEAR(date)").group("MONTH(date)").where(income_categories_id: 1).sum(:amount) @income_detail_saraly[[@search_year, @search_month]] binding.pry end

まず、 @search_yearには2019が、 @search_monthには5が入っています。

収入計算の部分で、
まず@income_detail_saralyは
=> {[2019, 5]=>400000, [2019, 6]=>500000}の形で取れています。
必要なのは2019年5月のもののみなので、
@income_detail_saraly[[@search_year, @search_month]]としましたが、
nilでした。

ちなみに、
@income_detail_saraly[[2019,5]]とすると40000がちゃんと取れます。

別のコントローラーで、
@current_income[[this_year,this_month]]としてますが値は取れてます。
(前回、質問させていただき解決したものです)

def index @name = current_user.name # 今月は何月か time = Time.now this_month = time.month this_year = time.year # 今月の現在の収支状況 @current_income = Income.group("YEAR(date)").group("MONTH(date)").sum(:amount) @current_income[[this_year,this_month]] # binding.pry end

何が違うのか,書き方も色々変えてみましたが解決せずです。
詳しい方いらっしゃいましたら、ご意見伺いたいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

paramsで来るものは(nilやファイルを除けば)文字列なので、[2019, 5]というキーの形に合わせるには.to_iで整数にする必要があります。

投稿2019/06/25 09:50

maisumakun

総合スコア145183

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

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

sho91

2019/06/25 09:55

早速のご回答ありがとうございました。 解決しました! 大変勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問