acts_as_tree and rails 3.2.3, not compatible? - ruby-on-rails

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?

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

Related

FactoryGirl - Factory not registering

In my Rails project, I have added factory_girl_rails gem and I am getting an error when I run Rspec to test my factory:
SyntaxError: /Users/khack/blister/spec/factories/user.rb:1:
syntax error, unexpected tIDENTIFIER, expecting keyword_end
passw...ester#example.com"
... ^
/Users/khack/blister/test/spec/factories/user.rb:1: syntax error, unexpected
tIDENTIFIER, expecting keyword_end
endassword "password"m"
... ^
The user factory:
FactoryGirl.define do
factory :user do
name "Aaron Sumner"
email "tester#example.com"
password "password"
end
end
I am missing something but I can't find it. Any guesses?
I solved my problem. It was non-breaking space that my code editor was adding. I did another factory in a different editor and it registered successfully.

rake routes--> rake aborted! syntax error, unexpected keyword_end, expecting end-of-input (Mac)

Hello i'm new to Ruby on Rails, and I was trying to set up a blog.
I ran "rake routes" and I got the error copy and pasted below.
I would greatly appreciate help fixing it (have not found anything similar online.)
dhcp-18-111-5-233:blog ronaldoisabeast$ rake routes
rake aborted!
/Users/ronaldoisabeast/Desktop/Rails/blog/config/routes.rb:58: syntax error, unexpected keyword_end, expecting end-of-input
/Users/ronaldoisabeast/.rvm/gems/ruby-2.1.0/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:223:in load'
/Users/ronaldoisabeast/.rvm/gems/ruby-2.1.0/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:223:inblock in load'
/Users/ronaldoisabeast/.rvm/gems/ruby-2.1.0/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:214:in load_dependency'
/Users/ronaldoisabeast/.rvm/gems/ruby-2.1.0/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:223:inload'
/Users/ronaldoisabeast/.rvm/gems/ruby-2.1.0/gems/railties-4.0.2/lib/rails/application/routes_reloader.rb:40:in `block in load_paths'
paths'
There is some end missing in your config/routes.rb if you can put it here we will be able to find the bug

Error when running rails or rake command on fresh install

macbook air bought yesterday. Installed homebrew, xcode, rails, git, cloned out my project fine. Running "rails s" or rake db:create, rake db:migrate etc. all return this same error. Have run bundle install. Seems really odd, perhaps requiring reinstall but what should I reinstall?
/Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require': /Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:31: odd number list for Hash (SyntaxError)
title: #meta_title,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:31: syntax error, unexpected ':', expecting '}'
title: #meta_title,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:32: syntax error, unexpected ':', expecting '='
keywords: #meta_keywords,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:33: syntax error, unexpected ':', expecting '='
description: #meta_description,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:34: syntax error, unexpected ':', expecting '='
author: #meta_author,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:35: syntax error, unexpected ':', expecting '='
email: #meta_email,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:36: syntax error, unexpected ':', expecting '='
copyright: #meta_copyright,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:37: syntax error, unexpected ':', expecting '='
generator: #meta_generator,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:38: syntax error, unexpected ':', expecting '='
rating: #meta_rating,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:39: syntax error, unexpected ':', expecting '='
language: #meta_language,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:40: syntax error, unexpected ':', expecting '='
distribution: #meta_distribution,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:41: syntax error, unexpected ':', expecting '='
robots: #robots,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:42: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"fb:app_id" => #meta_fb_app_id,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:43: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:title" => #meta_og_title,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:44: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:description" => #meta_og_description,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:45: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:url" => request.url,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:46: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:site_name" => #meta_og_site_name,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:47: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:type" => #meta_og_type,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:48: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:image" => #meta_og_image,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:49: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:locality" => #meta_og_locality,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:50: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:region" => #meta_og_region,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:51: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:country_name" => #meta_og_country_name,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:52: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:phone_number" => #meta_og_phone_number
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:58: syntax error, unexpected $end, expecting kEND
from /Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `load_dependency'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:640:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `load_dependency'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require'
from /Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers.rb:2
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
from /Users/davidganly/work/vvx/config/application.rb:13
from /Library/Ruby/Gems/1.8/gems/railties-3.1.0/lib/rails/commands.rb:52:in `require'
from /Library/Ruby/Gems/1.8/gems/railties-3.1.0/lib/rails/commands.rb:52
from /Library/Ruby/Gems/1.8/gems/railties-3.1.0/lib/rails/commands.rb:49:in `tap'
from /Library/Ruby/Gems/1.8/gems/railties-3.1.0/lib/rails/commands.rb:49
from script/rails:6:in `require'
from script/rails:6
I didn't have ruby 1.9.2. -- Just hadn't noticed. Anyway, did the sensible thing and installed via rvm and now everything is up and running.
Had my previous answer deleted because I was asking what I'm supposed to do if I can't update to 1.9.x, since the accepted answer doesn't really solve the problem.
Btw I submitted a patch to frontend-helpers which is now merged into master :
https://github.com/christopherhein/frontend-helpers/commit/b2ce595d2dd183b643fbe4c3c22cd9defbc24ed7
So if you run into this issue just upgrade your Gemfile !

active_support dependencies error when using candy

I am getting the following error when I use Candy in my Rails project. Really a syntax error?
=> Ctrl-C to shutdown server
Exiting
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require': /home/waleed/.bundler/ruby/1.8/candy-daa2670a71e3/lib/candy/array.rb:56: syntax error, unexpected ':', expecting kEND (SyntaxError)
...lection.find_and_modify query: {"_id" => #__candy_parent.id}...
^
/home/waleed/.bundler/ruby/1.8/candy-daa2670a71e3/lib/candy/array.rb:56: syntax error, unexpected ',', expecting kEND
...{"_id" => #__candy_parent.id}, update: {'$pop' => {#__candy_...
^
/home/waleed/.bundler/ruby/1.8/candy-daa2670a71e3/lib/candy/array.rb:56: syntax error, unexpected ',', expecting kEND
... {#__candy_parent_key => -1}}, new: false
^
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in'
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
from /home/waleed/.bundler/ruby/1.8/candy-daa2670a71e3/lib/candy/piece.rb:1
Any ideas why?
Per the project's GitHub page, the Candy gem only works on Ruby 1.9 -- you're using 1.8.

What's the difference between kEND and $end?

I got this error:
syntax error, unexpected kEND, expecting $end
What's the difference between kEND and $end ?
In english this is stating:
syntax error, unexpected end of file, expecting an end keyword
I agree it's a fairly non-intuitive message.
So the difference is:
kEND = end of file
$end = end keyword
kEND is the end of your file $end is the end tag so, something like
if somethingIsTrue
puts "its true!"
end
Usually when this happens, you forgot to close something with an end.

Resources