Guest User

Untitled

a guest
Jan 17th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. ## in application.rb
  2.  
  3.  
  4. # Custom directories with classes and modules you want to be autoloadable.
  5. config.autoload_paths += %W(#{Rails.root}/app/workers
  6. #{Rails.root}/lib/validators
  7. #{Rails.root}/lib/content_items
  8. #{Rails.root}/lib/booher_modules
  9. )
  10.  
  11. ## in lib/booher_modules, mongoid_counter_cache.rb
  12.  
  13. module Mongoid
  14. module CounterCache
  15. extend ActiveSupport::Concern
  16.  
  17. module ClassMethods
  18. def counter_cache(options)
  19. name = options[:name]
  20. counter_field = options[:field]
  21.  
  22. after_create do |document|
  23. relation = document.send(name)
  24. relation.collection.update(relation._selector, {'$inc' => {counter_field.to_s => 1}})
  25. end
  26.  
  27. after_destroy do |document|
  28. relation = document.send(name)
  29. relation.collection.update(relation._selector, {'$inc' => {counter_field.to_s => -1}})
  30. end
  31. end
  32. end
  33.  
  34. end
  35. end
  36.  
  37. ## model (vote.rb)
  38.  
  39. class Vote
  40. include Mongoid::Document
  41. include Mongoid::Timestamps
  42. include Mongoid::CounterCache
  43.  
  44. ## error on rails c
  45.  
  46. Users/Tim/Sites/polco/app/models/vote.rb:4:in `<class:Vote>': uninitialized constant Mongoid::CounterCache (NameError)
  47. from /Users/Tim/Sites/polco/app/models/vote.rb:1:in `<top (required)>'
  48. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/bundler/gems/mongoid-ccae125ccfd8/lib/rails/mongoid.rb:66:in `load_model'
  49. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/bundler/gems/mongoid-ccae125ccfd8/lib/rails/mongoid.rb:41:in `block (2 levels) in load_models'
  50. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/bundler/gems/mongoid-ccae125ccfd8/lib/rails/mongoid.rb:40:in `each'
  51. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/bundler/gems/mongoid-ccae125ccfd8/lib/rails/mongoid.rb:40:in `block in load_models'
  52. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/bundler/gems/mongoid-ccae125ccfd8/lib/rails/mongoid.rb:39:in `each'
  53. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/bundler/gems/mongoid-ccae125ccfd8/lib/rails/mongoid.rb:39:in `load_models'
  54. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/bundler/gems/mongoid-ccae125ccfd8/lib/rails/mongoid.rb:51:in `preload_models'
  55. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/bundler/gems/mongoid-ccae125ccfd8/lib/mongoid/railtie.rb:96:in `block (2 levels) in <class:Railtie>'
  56. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/gems/activesupport-3.1.0/lib/active_support/callbacks.rb:404:in `_run_prepare_callbacks'
  57. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/gems/activesupport-3.1.0/lib/active_support/callbacks.rb:81:in `run_callbacks'
  58. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@cba/gems/actionpack-3.1.0/lib/action_dispatch/middleware/reloader.rb:46:in `prepare!'
  59. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.1.0/lib/rails/application/finisher.rb:41:in `block in <module:Finisher>'
  60. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.1.0/lib/rails/initializable.rb:25:in `instance_exec'
  61. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.1.0/lib/rails/initializable.rb:25:in `run'
  62. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.1.0/lib/rails/initializable.rb:50:in `block in run_initializers'
  63. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.1.0/lib/rails/initializable.rb:49:in `each'
  64. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.1.0/lib/rails/initializable.rb:49:in `run_initializers'
  65. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.1.0/lib/rails/application.rb:92:in `initialize!'
  66. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.1.0/lib/rails/railtie/configurable.rb:30:in `method_missing'
  67. from /Users/Tim/Sites/polco/config/environment.rb:7:in `<top (required)>'
  68. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.1.0/lib/rails/application.rb:78:in `require_environment!'
  69. from /Users/Tim/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.1.0/lib/rails/commands.rb:39:in `<top (required)>'
  70. from script/rails:6:in `require'
  71. from script/rails:6:in `<main>'
Add Comment
Please, Sign In to add comment