petertoth / seems_rateable

Star rating gem for rails applications. Uses jRating jquery plugin.
MIT License
13 stars 8 forks source link

Not compatible with Rails 3.2.x #6

Closed jogaco closed 10 years ago

jogaco commented 10 years ago

Thanks for this gem. However, I'm having problems in making it work with Rails 3.2.x.

When loading an object with seems_rateable from database:

 ArgumentError: wrong number of arguments (3 for 2)
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.16/lib/active_record/associations.rb:1197:in `has_many'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/seems_rateable-1.0.12/lib/seems_rateable/model.rb:84:in `seems_rateable'
from .../rails/sti_test/app/models/vehicle.rb:4:in `<class:Vehicle>'
from .../rails/sti_test/app/models/vehicle.rb:1:in `<top (required)>'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.16/lib/active_support/dependencies.rb:469:in `load'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.16/lib/active_support/dependencies.rb:469:in `block in load_file'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.16/lib/active_support/dependencies.rb:639:in `new_constants_in'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.16/lib/active_support/dependencies.rb:468:in `load_file'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.16/lib/active_support/dependencies.rb:353:in `require_or_load'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.16/lib/active_support/dependencies.rb:502:in `load_missing_constant'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.16/lib/active_support/dependencies.rb:192:in `block in const_missing'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.16/lib/active_support/dependencies.rb:190:in `each'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.16/lib/active_support/dependencies.rb:190:in `const_missing'
from (irb):1
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.16/lib/rails/commands/console.rb:47:in `start'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.16/lib/rails/commands/console.rb:8:in `start'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.16/lib/rails/commands.rb:41:in `<top (required)>'
from .../rails/sti_test/script/rails:6:in `require'
from .../sti_test/script/rails:6:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'

I already implemented a fix, so a pull request will follow.

jogaco commented 10 years ago

After updating my code to make it compatible with Rails 3.2.x, I also found it did not work for STI class hierarchies, like:

class Vehicle < ActiveRecord::Base
  attr_accessible :brand

  seems_rateable :allow_update => true, :dimensions => [:dim1, :dim2]
end

class Car < Vehicle
end

My pull request will include a fix for this as well.

petertoth commented 10 years ago

Sorry for that STI. Thanks for your contribution !