Last active
August 29, 2015 14:28
-
-
Save aristotelesbr/74e5437ba2e6b5090669 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Deve criar no banco de dados de um valor(despesa) parcelado, onde | |
# o valor de cada parcela será cobrado nos messes subsequentes. | |
def create_invoices | |
interval = 1.month | |
cicles = self.quantity | |
start_date = Date.today | |
current_date = start_date | |
cicles.times do | |
Expense.create!(value: "#{value}", quantity:"#{quantity}", | |
descripition: "#{description}", user_id: "#{user_id}") | |
portions = self.value / self.quantity | |
puts current_date | |
puts portions | |
current_date += interval | |
end | |
end |
Opa, desculpe a demora em postar ai esta, fiz exatamente um after_create
. Deu uma arrumada e esta funcionando sem aquele loop infinito, agora tudo que eu preciso é da um insert no banco com o valor das parcelas no outros messes.
class Expense < ActiveRecord::Base
after_create :create_invoices
protected
after_create :create_invoices
protected
def create_invoices
if quantity.present?
interval = 1.month
cicles = self.quantity
start_date = Date.today
current_date = start_date
portions = self.value / self.quantity
cicles.times do
self.update(value: portions) # Da um update no valor total
# Preciso criar uma parcela em cada mês.
# Ex. Fogão => 100 / 5 = 20.0
# Jan. => Fogão: valor: 20.0"
# Fev. => Fogão: valor: 20.0
# Mar => ..... Valor: 20.0
#Abr => ........
puts current_date
puts portions
current_date += interval
end
end
end
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Sem grilo. Estamos aqui para aprender e evoluir. 👍
Ainda está obscuro pra mim cara.
SystemStackError: stack level too deep
normalmente é resultado de uma referência cíclica. ExemplificandoOu seja, é uma chamada de função que nunca acaba, tipo um loop infinito que estoura o limite de chamadas de função.
No Rails, já fiz isso acontecer algumas vezes com o uso de callbacks (EX:
after_create
,after_save
). Por exemplo, após criar um Expense, tento atualizar um valor em Income, porém após atualizar um Income eu tento criar ExpensesPoderia colar os modelos Expense e Income para tentarmos identificar o problema?
O legal é entender como e quando a função
create_invoices
é chamada.