Ruby, stack level too deep (SystemStackError)
You need to do:
@price = self.price
to differentiate between your object attribute price
and your method parameter price
.
Your below code
def price
@price = price # <~~ method name you just defined with `def` keyword.
end
Creates never stopable recursion,.
How can I make this code work the way it is without attr_accessor?
You need to write as
def price=(price)
@price = price
end
def price
@price
end
read_attribute
is what you are looking for
def price
@price = read_attribute(:price)
end