Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Where is Waldo?
require 'active_support/all'
@store = ActiveSupport::HashWithIndifferentAccess.new
def my_hash
@store[:foo] ||= {bar: 'BAR'}
end
my_hash[:waldo] = 'WALDO'
my_hash[:baz] = 'BAZ'
my_hash[:qux] = 'QUX'
puts my_hash
@yemartin
Copy link
Author

yemartin commented Sep 2, 2015

@jcoleman I am seeing this with ActiveSupport 4.2.4.

@yemartin
Copy link
Author

yemartin commented Sep 2, 2015

@coalwater Yes, that fixes it indeed. Here is another workaround that fixes the behavior too:

def my_hash
  @store[:foo] ||= {bar: 'BAR'}
  @store[:foo]
end

But the mystery remains... Why is the original code not working?

@yemartin
Copy link
Author

yemartin commented Sep 2, 2015

@jcoleman Could it be related to the Ruby version? I am using 2.1.2 now, what about you?

@yemartin
Copy link
Author

yemartin commented Sep 2, 2015

The answer was given by Matt Jones on the rubyonrails-core mailing list:

https://groups.google.com/d/msg/rubyonrails-core/SvRAIOu-hoU/4rXrXubUHQAJ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment