Rails 4 アプリを作成していますが、このエラーが発生しています。私以外の誰かにとっては、とても明白なことだと確信しています。
10行目でこのエラーをスローしているヘルパーファイルは次のとおりです。
module StatsHelper
def stats_chart_data
@start = "january 1, 2013".to_date
@start = @start - (@start.wday).days
stats_by_day = Stat.total_grouped_by_day("january 1, 2013".to_date)
(@start..Date.today).step(7).map do |date|
{
date: date,
attendance: stats_by_day(date).first.try(:total_attendance) || 0 #error shows up here
}
end
end
end
関連するモデル ファイルは次のとおりです。
class Stat < ActiveRecord::Base
belongs_to :campus
validates :attendance, presence: {message: "cannot be blank"}
validates :campus_id, presence: {message: "Please choose which campus"}
validates :date, presence: {message: "Please enter date"}
validates :time, presence: {message: "Please enter time"}
def self.total_grouped_by_day(start)
stats = where(date: start.beginning_of_day..Time.zone.now)
stats = stats.group("date")
stats = stats.select("date, sum(attendance) as total_attendance")
stats.group_by { |o| o.date.to_date }
end
end
私はRailsCastsでチャート作成に取り組んでいますが、この部分がわかりません。
1 つのキャンパスでの教会礼拝の合計参加者数を示すグラフを作成しようとしています。ここで何が欠けていますか?
したがって、次の行のようです:
stats_by_day = Stat.total_grouped_by_day("january 1, 2013".to_date)
nilを返しています。
コンソールに次のコマンドを入力してみました。
Stat.select("date(date), sum(attendance) as total_attendance")
また、nilを返します
Stat.first
戻り値
Stat Load (0.4ms) SELECT "stats".* FROM "stats" ORDER BY "stats"."id" ASC LIMIT 1
=> #<Stat id: 1, attendance: 41, salvations: 0, visitors: 7, offering: #<BigDecimal:7fb85b20b618,'0.2187E4',9(36)>, created_at: "2013-07-17 05:33:28", updated_at: "2013-07-18 19:29:47", campus_id: 1, date: "2013-07-14", time: "2000-01-01 19:00:00">
そのため、select メソッドの呼び出し方法に問題があるようです。何か案は?