Skip to content

@BM5k /ability.rb secret
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
CanCan Uninitialized Constant Error
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
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
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>'
module MyEngine
class MyModel < ActiveRecord::Base
end
end
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.