neilmarion / paano

2 stars 1 forks source link

Voting bug #97

Closed neilmarion closed 11 years ago

neilmarion commented 11 years ago

Adding Evaluations

ArgumentError - question_reputation is not defined for NilClass: (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/network.rb:100:in get_scoped_reputation_name' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/network.rb:161:inget_scoped_reputation_name_from_source_def_and_target' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/network.rb:111:in block in get_weight_of_source_from_reputation_name_of_target' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/network.rb:110:inget_weight_of_source_from_reputation_name_of_target' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/models/reputation.rb:150:in send_reputation_message_to_receiver' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/models/reputation.rb:140:inblock (2 levels) in propagate_updated_reputation_value' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/models/reputation.rb:138:in block in propagate_updated_reputation_value' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/models/reputation.rb:136:inpropagate_updated_reputation_value' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/models/reputation.rb:73:in update_reputation_value_with_new_source' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/evaluation_methods.rb:55:inadd_evaluation' app/models/post.rb:66:in vote_up' app/controllers/posts_controller.rb:41:inblock in vote_up' (gem) actionpack-3.2.12/lib/action_controller/metal/mime_responds.rb:270:in retrieve_collector_from_mimes' (gem) actionpack-3.2.12/lib/action_controller/metal/mime_responds.rb:194:inrespond_to' app/controllers/posts_controller.rb:40:in vote_up' (gem) actionpack-3.2.12/lib/action_controller/metal/implicit_render.rb:4:insend_action' (gem) actionpack-3.2.12/lib/abstract_controller/base.rb:167:in process_action' (gem) actionpack-3.2.12/lib/action_controller/metal/rendering.rb:10:inprocess_action' (gem) actionpack-3.2.12/lib/abstract_controller/callbacks.rb:18:in block in process_action' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:436:in_run2222011682516618363process_action4218324961007181960callbacks' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:405:in __run_callback' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:385:in_run_process_action_callbacks' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:81:in run_callbacks' (gem) actionpack-3.2.12/lib/abstract_controller/callbacks.rb:17:inprocess_action' (gem) actionpack-3.2.12/lib/action_controller/metal/rescue.rb:29:in process_action' (gem) actionpack-3.2.12/lib/action_controller/metal/instrumentation.rb:30:inblock in process_action' (gem) activesupport-3.2.12/lib/active_support/notifications.rb:123:in block in instrument' (gem) activesupport-3.2.12/lib/active_support/notifications/instrumenter.rb:20:ininstrument' (gem) activesupport-3.2.12/lib/active_support/notifications.rb:123:in instrument' (gem) actionpack-3.2.12/lib/action_controller/metal/instrumentation.rb:29:inprocess_action' (gem) actionpack-3.2.12/lib/action_controller/metal/params_wrapper.rb:207:in process_action' (gem) activerecord-3.2.12/lib/active_record/railties/controller_runtime.rb:18:inprocess_action' (gem) actionpack-3.2.12/lib/abstract_controller/base.rb:121:in process' (gem) actionpack-3.2.12/lib/abstract_controller/rendering.rb:45:inprocess' (gem) rack-mini-profiler-0.1.23/Ruby/lib/mini_profiler/profiling_methods.rb:90:in block in profile_method' (gem) actionpack-3.2.12/lib/action_controller/metal.rb:203:indispatch' (gem) actionpack-3.2.12/lib/action_controller/metal/rack_delegation.rb:14:in dispatch' (gem) actionpack-3.2.12/lib/action_controller/metal.rb:246:inblock in action' (gem) actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:73:in dispatch' (gem) actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:36:incall' (gem) journey-1.0.4/lib/journey/router.rb:68:in block in call' (gem) journey-1.0.4/lib/journey/router.rb:56:incall' (gem) actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:601:in call' (gem) omniauth-1.1.3/lib/omniauth/strategy.rb:177:incall!' (gem) omniauth-1.1.3/lib/omniauth/strategy.rb:157:in call' (gem) warden-1.2.1/lib/warden/manager.rb:35:inblock in call' (gem) warden-1.2.1/lib/warden/manager.rb:34:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/best_standards_support.rb:17:incall' (gem) rack-1.4.5/lib/rack/etag.rb:23:in call' (gem) rack-1.4.5/lib/rack/conditionalget.rb:25:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/head.rb:14:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/params_parser.rb:21:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/flash.rb:242:in call' (gem) rack-1.4.5/lib/rack/session/abstract/id.rb:210:incontext' (gem) rack-1.4.5/lib/rack/session/abstract/id.rb:205:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/cookies.rb:341:incall' (gem) activerecord-3.2.12/lib/active_record/query_cache.rb:64:in call' (gem) activerecord-3.2.12/lib/active_record/connection_adapters/abstract/connection_pool.rb:479:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/callbacks.rb:28:in block in call' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:405:in_run1802988086567094080call1831358325440036178callbacks' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:405:in __run_callback' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:385:in_run_call_callbacks' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:81:in run_callbacks' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/callbacks.rb:27:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/reloader.rb:65:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/remote_ip.rb:31:incall' (gem) better_errors-0.7.2/lib/better_errors/middleware.rb:84:in protected_app_call' (gem) better_errors-0.7.2/lib/better_errors/middleware.rb:79:inbetter_errors_call' (gem) better_errors-0.7.2/lib/better_errors/middleware.rb:56:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/debug_exceptions.rb:16:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/show_exceptions.rb:56:in call' (gem) railties-3.2.12/lib/rails/rack/logger.rb:32:incall_app' (gem) railties-3.2.12/lib/rails/rack/logger.rb:16:in block in call' (gem) activesupport-3.2.12/lib/active_support/tagged_logging.rb:22:intagged' (gem) railties-3.2.12/lib/rails/rack/logger.rb:16:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/request_id.rb:22:incall' (gem) rack-1.4.5/lib/rack/methodoverride.rb:21:in call' (gem) rack-1.4.5/lib/rack/runtime.rb:17:incall' (gem) activesupport-3.2.12/lib/active_support/cache/strategy/local_cache.rb:72:in call' (gem) rack-1.4.5/lib/rack/lock.rb:15:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/static.rb:62:in call' (gem) rack-mini-profiler-0.1.23/Ruby/lib/mini_profiler/profiler.rb:310:incall' (gem) railties-3.2.12/lib/rails/engine.rb:479:in call' (gem) railties-3.2.12/lib/rails/application.rb:223:incall' (gem) rack-1.4.5/lib/rack/content_length.rb:14:in call' (gem) railties-3.2.12/lib/rails/rack/log_tailer.rb:17:incall' (gem) rack-1.4.5/lib/rack/handler/webrick.rb:59:in service' /home/neil/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/httpserver.rb:138:inservice' /home/neil/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/httpserver.rb:94:in run' /home/neil/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/server.rb:191:inblock in start_thread'

Deleting evaluations

ArgumentError - question_reputation is not defined for NilClass: (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/network.rb:100:in get_scoped_reputation_name' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/network.rb:161:inget_scoped_reputation_name_from_source_def_and_target' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/network.rb:111:in block in get_weight_of_source_from_reputation_name_of_target' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/network.rb:110:inget_weight_of_source_from_reputation_name_of_target' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/models/reputation.rb:150:in send_reputation_message_to_receiver' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/models/reputation.rb:140:inblock (2 levels) in propagate_updated_reputation_value' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/models/reputation.rb:138:in block in propagate_updated_reputation_value' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/models/reputation.rb:136:inpropagate_updated_reputation_value' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/models/reputation.rb:97:in update_reputation_value_with_updated_source' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/evaluation_methods.rb:125:indelete_evaluation_without_validation' (gem) activerecord-reputation-system-2.0.2/lib/reputation_system/evaluation_methods.rb:81:in delete_evaluation' app/models/post.rb:82:inunvote' app/controllers/posts_controller.rb:31:in unvote' (gem) actionpack-3.2.12/lib/action_controller/metal/implicit_render.rb:4:insend_action' (gem) actionpack-3.2.12/lib/abstract_controller/base.rb:167:in process_action' (gem) actionpack-3.2.12/lib/action_controller/metal/rendering.rb:10:inprocess_action' (gem) actionpack-3.2.12/lib/abstract_controller/callbacks.rb:18:in block in process_action' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:436:in_run2222011682516618363process_action4054774554349963175callbacks' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:405:in __run_callback' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:385:in_run_process_action_callbacks' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:81:in run_callbacks' (gem) actionpack-3.2.12/lib/abstract_controller/callbacks.rb:17:inprocess_action' (gem) actionpack-3.2.12/lib/action_controller/metal/rescue.rb:29:in process_action' (gem) actionpack-3.2.12/lib/action_controller/metal/instrumentation.rb:30:inblock in process_action' (gem) activesupport-3.2.12/lib/active_support/notifications.rb:123:in block in instrument' (gem) activesupport-3.2.12/lib/active_support/notifications/instrumenter.rb:20:ininstrument' (gem) activesupport-3.2.12/lib/active_support/notifications.rb:123:in instrument' (gem) actionpack-3.2.12/lib/action_controller/metal/instrumentation.rb:29:inprocess_action' (gem) actionpack-3.2.12/lib/action_controller/metal/params_wrapper.rb:207:in process_action' (gem) activerecord-3.2.12/lib/active_record/railties/controller_runtime.rb:18:inprocess_action' (gem) actionpack-3.2.12/lib/abstract_controller/base.rb:121:in process' (gem) actionpack-3.2.12/lib/abstract_controller/rendering.rb:45:inprocess' (gem) rack-mini-profiler-0.1.23/Ruby/lib/mini_profiler/profiling_methods.rb:90:in block in profile_method' (gem) actionpack-3.2.12/lib/action_controller/metal.rb:203:indispatch' (gem) actionpack-3.2.12/lib/action_controller/metal/rack_delegation.rb:14:in dispatch' (gem) actionpack-3.2.12/lib/action_controller/metal.rb:246:inblock in action' (gem) actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:73:in dispatch' (gem) actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:36:incall' (gem) journey-1.0.4/lib/journey/router.rb:68:in block in call' (gem) journey-1.0.4/lib/journey/router.rb:56:incall' (gem) actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:601:in call' (gem) omniauth-1.1.3/lib/omniauth/strategy.rb:177:incall!' (gem) omniauth-1.1.3/lib/omniauth/strategy.rb:157:in call' (gem) warden-1.2.1/lib/warden/manager.rb:35:inblock in call' (gem) warden-1.2.1/lib/warden/manager.rb:34:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/best_standards_support.rb:17:incall' (gem) rack-1.4.5/lib/rack/etag.rb:23:in call' (gem) rack-1.4.5/lib/rack/conditionalget.rb:25:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/head.rb:14:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/params_parser.rb:21:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/flash.rb:242:in call' (gem) rack-1.4.5/lib/rack/session/abstract/id.rb:210:incontext' (gem) rack-1.4.5/lib/rack/session/abstract/id.rb:205:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/cookies.rb:341:incall' (gem) activerecord-3.2.12/lib/active_record/query_cache.rb:64:in call' (gem) activerecord-3.2.12/lib/active_record/connection_adapters/abstract/connection_pool.rb:479:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/callbacks.rb:28:in block in call' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:405:in_run1802988086567094080call1831358325440036178callbacks' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:405:in __run_callback' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:385:in_run_call_callbacks' (gem) activesupport-3.2.12/lib/active_support/callbacks.rb:81:in run_callbacks' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/callbacks.rb:27:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/reloader.rb:65:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/remote_ip.rb:31:incall' (gem) better_errors-0.7.2/lib/better_errors/middleware.rb:84:in protected_app_call' (gem) better_errors-0.7.2/lib/better_errors/middleware.rb:79:inbetter_errors_call' (gem) better_errors-0.7.2/lib/better_errors/middleware.rb:56:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/debug_exceptions.rb:16:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/show_exceptions.rb:56:in call' (gem) railties-3.2.12/lib/rails/rack/logger.rb:32:incall_app' (gem) railties-3.2.12/lib/rails/rack/logger.rb:16:in block in call' (gem) activesupport-3.2.12/lib/active_support/tagged_logging.rb:22:intagged' (gem) railties-3.2.12/lib/rails/rack/logger.rb:16:in call' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/request_id.rb:22:incall' (gem) rack-1.4.5/lib/rack/methodoverride.rb:21:in call' (gem) rack-1.4.5/lib/rack/runtime.rb:17:incall' (gem) activesupport-3.2.12/lib/active_support/cache/strategy/local_cache.rb:72:in call' (gem) rack-1.4.5/lib/rack/lock.rb:15:incall' (gem) actionpack-3.2.12/lib/action_dispatch/middleware/static.rb:62:in call' (gem) rack-mini-profiler-0.1.23/Ruby/lib/mini_profiler/profiler.rb:310:incall' (gem) railties-3.2.12/lib/rails/engine.rb:479:in call' (gem) railties-3.2.12/lib/rails/application.rb:223:incall' (gem) rack-1.4.5/lib/rack/content_length.rb:14:in call' (gem) railties-3.2.12/lib/rails/rack/log_tailer.rb:17:incall' (gem) rack-1.4.5/lib/rack/handler/webrick.rb:59:in service' /home/neil/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/httpserver.rb:138:inservice' /home/neil/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/httpserver.rb:94:in run' /home/neil/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/server.rb:191:inblock in start_thread'

neilmarion commented 11 years ago

Happens if someone votes for some User's answer whom still does not have a question asked.

activerecord-reputation-system-2.0.2/lib/reputation_system/network.rb

157 def get_scoped_reputation_name_from_source_def_and_target(source_def, target) 158 scope = target.evaluate_reputation_scope(source_def[:scope]) if source_def[:scope] 159 of = target.get_attributes_of(source_def) 160 puts "#{of}" 161 class_name = (of.is_a?(Array) ? of[0] : of).class.name 162 puts "#{source_def}, #{target.inspect}" 163 get_scoped_reputation_name(class_name, source_def[:reputation], scope) 164 end

neilmarion commented 11 years ago

related https://github.com/twitter/activerecord-reputation-system/issues/19

neilmarion commented 11 years ago

activerecord-reputation-system-2.0.2/lib/reputation_system/network.rb

My solution is to modify get_scoped_reputation_name_from_source_def_and_target(source_def, target)

    def get_scoped_reputation_name_from_source_def_and_target(source_def, target)
      scope = target.evaluate_reputation_scope(source_def[:scope]) if source_def[:scope]
      of = target.get_attributes_of(source_def)
      return "false" if of.blank?
      class_name = (of.is_a?(Array) ? of[0] : of).class.name
      get_scoped_reputation_name(class_name, source_def[:reputation], scope)
    end
kylemacey commented 11 years ago

This same patch fixed my issue