Skip to content

.hash_tree returning NoMethodError: undefined method `[]=' for nil:NilClass #37

@kurko

Description

@kurko

I have a weird problem here. I added some nodes and suddenly I can't use Taxonomy.hash_tree anymore.

I thought, "ok, given I just started out, I'll just delete everything and start over", but then what if this issue happens when I go to production?

In fact, after starting over and recreating the nodes, I haven't got the error so far.

Do you have any idea what this could be?

Thanks!

Data

Here, everything's ok.

irb(main):003:0> Company.first.taxonomies.all
  Company Load (0.6ms)  SELECT "companies".* FROM "companies" LIMIT 1
  Taxonomy Load (0.3ms)  SELECT "taxonomies".* FROM "taxonomies" WHERE "taxonomies"."store_id" = 1
=> [#<Taxonomy id: 15, name: "a", parent_id: nil, store_id: 1, created_at: "2013-01-08 01:14:34", updated_at: "2013-01-08 01:14:34">, 
#<Taxonomy id: 16, name: "aa", parent_id: 15, store_id: 1, created_at: "2013-01-08 01:14:37", updated_at: "2013-01-08 01:14:37">, 
#<Taxonomy id: 17, name: "aaa", parent_id: 16, store_id: 1, created_at: "2013-01-08 01:14:40", updated_at: "2013-01-08 01:14:40">, 
#<Taxonomy id: 18, name: "b", parent_id: nil, store_id: 1, created_at: "2013-01-08 01:14:45", updated_at: "2013-01-08 01:14:45">, 
#<Taxonomy id: 19, name: "bb", parent_id: 18, store_id: 1, created_at: "2013-01-08 01:14:48", updated_at: "2013-01-08 01:14:48">, 
#<Taxonomy id: 20, name: "aaa2", parent_id: 16, store_id: 1, created_at: "2013-01-08 01:14:59", updated_at: "2013-01-08 01:14:59">, 
#<Taxonomy id: 21, name: "aaaa", parent_id: 20, store_id: 1, created_at: "2013-01-08 01:59:28", updated_at: "2013-01-08 01:59:28">, 
#<Taxonomy id: 22, name: "aaaa2", parent_id: 20, store_id: 1, created_at: "2013-01-08 01:59:34", updated_at: "2013-01-08 01:59:34">, 
#<Taxonomy id: 23, name: "aaa3", parent_id: 20, store_id: 1, created_at: "2013-01-08 01:59:38", updated_at: "2013-01-08 01:59:38">, 
#<Taxonomy id: 24, name: "a", parent_id: 9, store_id: 1, created_at: "2013-01-08 02:34:03", updated_at: "2013-01-08 02:34:03">, 
#<Taxonomy id: 25, name: "a", parent_id: 9, store_id: 1, created_at: "2013-01-08 02:34:08", updated_at: "2013-01-08 02:34:08">]

Problematic hash_tree

Here, the error.

irb(main):006:0> Company.first.taxonomies.hash_tree
  Company Load (0.7ms)  SELECT "companies".* FROM "companies" LIMIT 1
  Taxonomy Load (0.7ms)  SELECT "taxonomies".* FROM "taxonomies" INNER JOIN (
 SELECT descendant_id, MAX(generations) as depth
 FROM "taxonomy_hierarchies"
 GROUP BY descendant_id

 ) AS generation_depth
 ON "taxonomies".id = generation_depth.descendant_id WHERE "taxonomies"."store_id" = 1 ORDER BY generation_depth.depth
NoMethodError: undefined method `[]=' for nil:NilClass
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/bundler/gems/closure_tree-7bf33728b625/lib/closure_tree/acts_as_tree.rb:398:in `block in build_hash_tree'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/relation/delegation.rb:6:in `each'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/relation/delegation.rb:6:in `each'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/bundler/gems/closure_tree-7bf33728b625/lib/closure_tree/acts_as_tree.rb:393:in `build_hash_tree'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/bundler/gems/closure_tree-7bf33728b625/lib/closure_tree/acts_as_tree.rb:94:in `hash_tree'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/relation/delegation.rb:14:in `block in hash_tree'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/relation.rb:241:in `block in scoping'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/scoping.rb:98:in `with_scope'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/relation.rb:241:in `scoping'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/relation/delegation.rb:14:in `hash_tree'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/associations/collection_proxy.rb:100:in `method_missing'
        from (irb):6
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:47:in `start'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:8:in `start'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus/rails.rb:117:in `console'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:105:in `block in command'
... 8 levels...
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:61:in `go'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:67:in `block (3 levels) in go'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:67:in `fork'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:67:in `block (2 levels) in go'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:63:in `each'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:63:in `block in go'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:61:in `loop'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:61:in `go'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:67:in `block (3 levels) in go'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:67:in `fork'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:67:in `block (2 levels) in go'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:63:in `each'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:63:in `block in go'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:61:in `loop'
        from /Users/kurko/.rbenv/versions/1.9.3-p194-perf/lib/ruby/gems/1.9.1/gems/zeus-0.12.0/lib/zeus.rb:61:in `go'
        from -e:1:in `<main>'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions