Question

I am using Rails 3.2.3 and acts_as_tree 1.1.0. I have been using acts_as_tree for a handful different projects with earlier versions of Rails 3 (such as 3.1.1.) with no problems but it won't work at all for this version. If it is because of 3.2.3 or something else that I use I have not been able to confirm though.

This is what I have tried, to no avail: - Using acts_as_tree on several different controllers - Only using acts_as_tree (with no order statement) - Run bundle install and bundle update - Double check that parent_id exist and is integer

First, when I tried this I got at first try:

undefined method `acts_as_tree'

reloading the page (and not doing anything else) caused:

undefined method `key?' for nil:NilClass

then restarting the server caused a failure to launch (the app would crash and not start) with the following error:

/Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:68:in `require': /Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:78: odd number list for Hash (SyntaxError)
        foreign_key:   "parent_id",
                    ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:78: syntax error, unexpected ':', expecting '}'
        foreign_key:   "parent_id",
                    ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:78: syntax error, unexpected ',', expecting kEND
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:79: Can't assign to nil
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:80: syntax error, unexpected ':', expecting '='
        counter_cache: nil,
                      ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:80: Can't assign to nil
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:81: syntax error, unexpected ':', expecting '='
        dependent:     :destroy
                  ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:82: syntax error, unexpected '}', expecting kEND
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:86: syntax error, unexpected ':', expecting kEND
      belongs_to :parent, class_name:    name,
                                     ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:87: syntax error, unexpected ':', expecting '='
        foreign_key:   configuration[:foreign_key],
                    ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:88: syntax error, unexpected ':', expecting '='
        counter_cache: configuration[:counter_cache],
                      ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:89: syntax error, unexpected ':', expecting '='
        inverse_of:    :children
                   ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:91: syntax error, unexpected ':', expecting kEND
      has_many :children, class_name:  name,
                                     ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:92: syntax error, unexpected ':', expecting '='
        foreign_key: configuration[:foreign_key],
                    ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:93: syntax error, unexpected ':', expecting '='
        order:       configuration[:order],
              ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:94: syntax error, unexpected ':', expecting '='
        dependent:   configuration[:dependent],
                  ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:95: syntax error, unexpected ':', expecting '='
        inverse_of:  :parent
                   ^
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:68:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:66:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:66:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:55:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:55:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler.rb:119:in `require'
    from /Users/Christoffer/Documents/Webbprojekt/rails/Presenttips/config/application.rb:7
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:53:in `require'
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:53
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:50:in `tap'
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:50
    from script/rails:6:in `require'
    from script/rails:6

which makes me guess there is a compability issue btw Rails 3.2.3 and acts_as_tree. I do not know how to verify this though.

What options do I have? I don't necessarily need to use Rails 3.2.3 but if I downgrade to 3.1.1. (which I tried) I encounter other problems that seem worse (the "file setup" does not seem to be the same).

So, what are my options? Have you experienced this as well? There IS something wrong with acts_as_tree, right?

Was it helpful?

Solution

Looks like there's an open from 2 years ago

opened this issue 2 years ago Does not work with Rails 2.3.8 https://github.com/rails/acts_as_tree/issues/1

Options

acts_as_tree_rails3 gem install acts_as_tree_rails3

or

nested_set https://github.com/skyeagle/nested_set

Edit:

You are right, the new location is https://github.com/amerine/acts_as_tree same author

with a comment

We no longer support Ruby 1.8 or versions if Rails/ActiveRecord older than 3.0. If you're using a version of ActiveRecord older than 3.0 please use 0.1.1.

Moving forward we will do our best to support the latest versions of ActiveRecord and Ruby

That's why they did not bother with those opened issues

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top