BM5k / ability.rb secret
Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

CanCan Uninitialized Constant Error

View ability.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
module MyEngine
class Ability
 
include CanCan::Ability
 
def initialize user = User.new
if user.admin?
can :manage, :all
else
 
if user.has_role? :a_role
can :manage, [MyEngine::MyModel, MyEngine::AnotherModel]
can :dashboard, :my_engine
end
 
end
end
 
end
end
View ability.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
module MyEngine
class ApplicationController < ActionController::Base
 
before_filter :authenticate_user!
 
rescue_from CanCan::AccessDenied do |exception|
redirect_to main_app.root_url, flash: { error: exception.message }
end
 
def current_ability
MyEngine::Ability.new current_user
end
 
end
end
View ability.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
activesupport (3.2.8) lib/active_support/inflector/methods.rb:230:in `block in constantize'
activesupport (3.2.8) lib/active_support/inflector/methods.rb:229:in `each'
activesupport (3.2.8) lib/active_support/inflector/methods.rb:229:in `constantize'
activesupport (3.2.8) lib/active_support/core_ext/string/inflections.rb:54:in `constantize'
cancan (1.6.8) lib/cancan/controller_resource.rb:145:in `resource_class'
cancan (1.6.8) lib/cancan/controller_resource.rb:152:in `resource_class_with_parent'
cancan (1.6.8) lib/cancan/controller_resource.rb:41:in `authorize_resource'
cancan (1.6.8) lib/cancan/controller_resource.rb:10:in `block in add_before_filter'
activesupport (3.2.8) lib/active_support/callbacks.rb:451:in `_run__2253187379616350628__process_action__382508493118337643__callbacks'
activesupport (3.2.8) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.8) lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks'
activesupport (3.2.8) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.2.8) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (3.2.8) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (3.2.8) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
activesupport (3.2.8) lib/active_support/notifications.rb:123:in `block in instrument'
activesupport (3.2.8) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (3.2.8) lib/active_support/notifications.rb:123:in `instrument'
actionpack (3.2.8) lib/action_controller/metal/instrumentation.rb:29:in `process_action'
actionpack (3.2.8) lib/action_controller/metal/params_wrapper.rb:207:in `process_action'
activerecord (3.2.8) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (3.2.8) lib/abstract_controller/base.rb:121:in `process'
actionpack (3.2.8) lib/abstract_controller/rendering.rb:45:in `process'
actionpack (3.2.8) lib/action_controller/metal.rb:203:in `dispatch'
actionpack (3.2.8) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
actionpack (3.2.8) lib/action_controller/metal.rb:246:in `block in action'
actionpack (3.2.8) lib/action_dispatch/routing/route_set.rb:73:in `call'
actionpack (3.2.8) lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
actionpack (3.2.8) lib/action_dispatch/routing/route_set.rb:36:in `call'
journey (1.0.4) lib/journey/router.rb:68:in `block in call'
journey (1.0.4) lib/journey/router.rb:56:in `each'
journey (1.0.4) lib/journey/router.rb:56:in `call'
actionpack (3.2.8) lib/action_dispatch/routing/route_set.rb:600:in `call'
railties (3.2.8) lib/rails/engine.rb:479:in `call'
railties (3.2.8) lib/rails/railtie/configurable.rb:30:in `method_missing'
journey (1.0.4) lib/journey/router.rb:68:in `block in call'
journey (1.0.4) lib/journey/router.rb:56:in `each'
journey (1.0.4) lib/journey/router.rb:56:in `call'
actionpack (3.2.8) lib/action_dispatch/routing/route_set.rb:600:in `call'
warden (1.2.1) lib/warden/manager.rb:35:in `block in call'
warden (1.2.1) lib/warden/manager.rb:34:in `catch'
warden (1.2.1) lib/warden/manager.rb:34:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.4.1) lib/rack/etag.rb:23:in `call'
rack (1.4.1) lib/rack/conditionalget.rb:25:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/head.rb:14:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/flash.rb:242:in `call'
rack (1.4.1) lib/rack/session/abstract/id.rb:205:in `context'
rack (1.4.1) lib/rack/session/abstract/id.rb:200:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/cookies.rb:339:in `call'
activerecord (3.2.8) lib/active_record/query_cache.rb:64:in `call'
activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:473:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
activesupport (3.2.8) lib/active_support/callbacks.rb:405:in `_run__1034907501487771995__call__1209918659595050547__callbacks'
activesupport (3.2.8) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.8) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
activesupport (3.2.8) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.2.8) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/reloader.rb:65:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
railties (3.2.8) lib/rails/rack/logger.rb:26:in `call_app'
railties (3.2.8) lib/rails/rack/logger.rb:16:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/request_id.rb:22:in `call'
rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
rack (1.4.1) lib/rack/runtime.rb:17:in `call'
activesupport (3.2.8) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.4.1) lib/rack/lock.rb:15:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/static.rb:62:in `call'
railties (3.2.8) lib/rails/engine.rb:479:in `call'
railties (3.2.8) lib/rails/application.rb:223:in `call'
railties (3.2.8) lib/rails/railtie/configurable.rb:30:in `method_missing'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/abstract_request_handler.rb:516:in `accept_and_process_next_request'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/rack/application_spawner.rb:171:in `block in handle_spawn_application'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/utils.rb:470:in `safe_fork'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/abstract_server.rb:180:in `start'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/rack/application_spawner.rb:129:in `start'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
<internal:prelude>:10:in `synchronize'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
/Users/bm5k/.passenger/standalone/3.0.17-x86_64-ruby1.9.3-macosx-10.8/support/helper-scripts/passenger-spawn-server:99:in `<main>'
View ability.rb
1 2 3 4 5 6
module MyEngine
 
class MyModel < ActiveRecord::Base
end
 
end
View ability.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
require_dependency 'my_engine/application_controller'
 
module MyEngine
class MyModelsController < ApplicationController
 
respond_to :html, :json
 
authorize_resource
 
def index
@my_models = MyModel.all
end
 
def show
@my_model = MyModel.find params[:id]
end
 
def update
@my_model = MyModel.find params[:id]
@my_model.update_attributes params[:my_model]
 
respond_with @my_model
end
 
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.