Ruby, stack level too deep (SystemStackError)

daremkd

I have the following code:

class BookPrice
  attr_accessor :price
  def initialize(price)
    @price = price
  end

  def price_in_cents
    Integer(price*100 + 0.5)
  end
end

b = BookPrice.new(2.20)
puts b.price_in_cents

This all works well and produces 220. But when I replace the second line attr_accessor :price with:

def price
  @price = price
end

I get stack level too deep (SystemStackError) error. What's going on? I know I can replace Integer(price*100 + 0.5) with @price instead of the method call price, but I want to keep it the way it is for OOP reasons. How can I make this code work the way it is without attr_accessor?

Arup Rakshit

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

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Ruby : stack level too deep (SystemStackError)

From Dev

SystemStackError - Stack Level Too Deep

From Dev

SystemStackError - stack level too deep with a User Search

From Dev

Each loop, stack level too deep (SystemStackError)

From Dev

SystemStackError (stack level too deep) in Model

From Dev

Ruby on Rails - SystemStackError (stack level too deep) when doing after_update

From Dev

Merging Ranges using Sets - Error - Stack level too deep (SystemStackError)

From Dev

stack level too deep (SystemStackError) when loading hash via require

From Dev

SystemStackError (stack level too deep) when deleting a record

From Dev

SystemStackError - stack level too deep: Using metaprograming with ActiveRecord

From Dev

Ruby routes - stack level too deep

From Dev

Stack level too deep in Ruby in subscription model

From Dev

Why am i getting the error `stack level too deep (systemstackerror)` when hashing 2 columns in a CSV?

From Dev

Modifying value using before_validation before validate_uniqueness_of - SystemStackError: stack level too deep

From Dev

Vagrant stack level too deep (SystemStackError) when trying to loop create machines

From Dev

Iterating through array of hashes in rails ,SystemStackError: stack level too deep error

From Dev

Stack level too deep

From Dev

Stack level too deep

From Dev

Stack Level Too Deep Error on Calling Yield in Ruby

From Dev

ruby on rails. stack level too deep error

From Dev

Ruby: Getting Stack level too deep on YAML.load of hash

From Dev

Stack level too deep with Devise

From Dev

Rails 3.2.21 instrumenter stack level too deep

From Dev

alias_method: stack level too deep

From Dev

Stack level too deep and before_save

From Dev

Stack level too deep because recursion

From Dev

rspec + factorygirl : stack level too deep

From Dev

Stack level too deep on user.save

From Dev

Stack Level Too Deep, Modules and Classes

Related Related

  1. 1

    Ruby : stack level too deep (SystemStackError)

  2. 2

    SystemStackError - Stack Level Too Deep

  3. 3

    SystemStackError - stack level too deep with a User Search

  4. 4

    Each loop, stack level too deep (SystemStackError)

  5. 5

    SystemStackError (stack level too deep) in Model

  6. 6

    Ruby on Rails - SystemStackError (stack level too deep) when doing after_update

  7. 7

    Merging Ranges using Sets - Error - Stack level too deep (SystemStackError)

  8. 8

    stack level too deep (SystemStackError) when loading hash via require

  9. 9

    SystemStackError (stack level too deep) when deleting a record

  10. 10

    SystemStackError - stack level too deep: Using metaprograming with ActiveRecord

  11. 11

    Ruby routes - stack level too deep

  12. 12

    Stack level too deep in Ruby in subscription model

  13. 13

    Why am i getting the error `stack level too deep (systemstackerror)` when hashing 2 columns in a CSV?

  14. 14

    Modifying value using before_validation before validate_uniqueness_of - SystemStackError: stack level too deep

  15. 15

    Vagrant stack level too deep (SystemStackError) when trying to loop create machines

  16. 16

    Iterating through array of hashes in rails ,SystemStackError: stack level too deep error

  17. 17

    Stack level too deep

  18. 18

    Stack level too deep

  19. 19

    Stack Level Too Deep Error on Calling Yield in Ruby

  20. 20

    ruby on rails. stack level too deep error

  21. 21

    Ruby: Getting Stack level too deep on YAML.load of hash

  22. 22

    Stack level too deep with Devise

  23. 23

    Rails 3.2.21 instrumenter stack level too deep

  24. 24

    alias_method: stack level too deep

  25. 25

    Stack level too deep and before_save

  26. 26

    Stack level too deep because recursion

  27. 27

    rspec + factorygirl : stack level too deep

  28. 28

    Stack level too deep on user.save

  29. 29

    Stack Level Too Deep, Modules and Classes

HotTag

Archive