Я хочу, чтобы иметь возможность возвращать некоторые данные с контроллера, чтобы я мог создать линейный граф в JavaScript с помощью gon gem.Возврат необходимых данных из контроллера Rails
У меня есть две модели:
account: id[PK, int], name[string], credit[boolean], active[boolean]
balance: id[PK, int], account_id[FK, int], balance[decimal], date[date]
class Account < ActiveRecord::Base
has_many :balances
end
class Balance < ActiveRecord::Base
belongs_to :account
end
Для всех дат в «противовесов», я хочу, чтобы вернуть сумму счетов, где активное вещество «т» и где активна является «F», а разница ,
Это некоторые примерные данные:
Account.create(name: 'Natwest', active: 't', credit: 'f')
Account.create(name: 'Cash', active: 't', credit: 'f')
Account.create(name: 'Capital One CC', active: 't', credit: 't')
Balance.create(account_id: '1', balance: '100', date: '31/10/2015')
Balance.create(account_id: '1', balance: '500', date: '30/11/2015')
Balance.create(account_id: '1', balance: '50', date: '31/12/2015')
Balance.create(account_id: '2', balance: '500', date: '30/09/2015')
Balance.create(account_id: '2', balance: '240', date: '31/10/2015')
Balance.create(account_id: '2', balance: '50', date: '30/11/2015')
Balance.create(account_id: '3', balance: '200', date: '30/09/2015')
Balance.create(account_id: '3', balance: '150', date: '31/10/2015')
Balance.create(account_id: '3', balance: '140', date: '30/11/2015')
Эти ожидаемые результаты:
- 30/09/2015:
active: 500
inactive: 200
difference: 300
- 31/10/2015:
active: 340
inactive: 150
difference: 190
- 30/11/2015:
active: 550
inactive: 140
difference: 410
- 31/12/2015:
active: 50
inactive: 0
difference: 50
Я думаю, мне нужно, чтобы создать хэш для достижения этой цели, и я могу вернуть даты в порядке возрастания как показано ниже, но я не уверен, как вернуть значения active
, inactive
и difference
.
@test = Hash[
Balance.joins(:account).order(date: :asc).group_by(&:date)
]
Спасибо, однако, глядя на ваши результаты, они неправильно и не соответствует тому, что я должен ожидать. Все неактивные результаты = 0. – Bhav
активна ваша учетная запись. См. Ваш вопрос) – Ilya
А, да. Моя ошибка. Я действительно хотел вернуть баланс, где для 'b.account.credit' и'! B.account.credit' и разница, но мне удалось изменить ваш код, чтобы сделать это. Спасибо. – Bhav