Skip to content

Instantly share code, notes, and snippets.

@Fivell
Created April 9, 2015 18:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save Fivell/15f39050b8db7092684f to your computer and use it in GitHub Desktop.
Save Fivell/15f39050b8db7092684f to your computer and use it in GitHub Desktop.
AA and ActiveResource
module ActiveAdmin
module Filters
module FormtasticAddons
alias :old_seems_searchable? :seems_searchable?
def seems_searchable?
return false if ransacker?
old_seems_searchable?
end
def klass
@object.try(:object).try(:klass)
end
def ransacker?
klass.try(:_ransackers).try(:key?, method.to_s)
end
def scope?
context = Ransack::Context.for klass rescue nil
context.respond_to?(:ransackable_scope?) && context.ransackable_scope?(method.to_s, klass)
end
end
end
end
module ActiveAdmin
module Helpers
module Collection
def collection_size(c = collection)
if c.is_a? ActiveRecord::Relation
c = c.except :select, :order
c.group_values.present? ? c.count.count : c.count
else
c.respond_to?(:count) ? c.count : 0
end
end
end
end
end
class Payment < MyActiveResource
schema do
attribute 'customer_id', :integer
attribute 'amount', :integer
attribute 'created_at', :string
attribute 'success', :boolean
end
def self.column_names
content_columns
end
def self.content_columns
if @content_columns.nil?
@content_columns = Array.new
known_attributes.each do |name|
@content_columns << ResourceColumn.new(name)
end
end
@content_columns
end
def self.columns
content_columns
end
class ResourceColumn
attr_reader :name
def initialize(name)
@name = name
end
def type
:string
end
end
end
ActiveAdmin.register Payment do
actions :index
config.batch_actions = false
filter :created_at_gteq, as: :date_time_picker
controller do
def find_collection
@search = OpenStruct.new(params[:q] || {})
result = Payment.find(:all, params: {
order: params.fetch(:order, 'created_at_desc'),
page: params.fetch(:page, 1),
per_page: params.fetch(:per_page, 50),
q: params[:q] || {}
})
#this uses https://github.com/Fivell/activeresource-response,
# but can be replaced with other ActiveResource pagination implementation
limit = result.http_response['X-Limit-Value'].to_i
offset = result.http_response['X-Offset-Value'].to_i
total = result.http_response['X-Total-Count'].to_i
Kaminari.paginate_array(result, limit: limit, offset: offset, total_count: total)
end
end
end
@rcstamato
Copy link

rcstamato commented Mar 27, 2019

I am getting a undefined method `_ransackers' for nil:NilClass error when trying to render the index page. Any suggestions?

Full stacktrace:
I, [2019-03-27T15:03:16.233913 #49751] INFO -- : method=GET path=/admin/libor_rates format=html controller=Admin::LiborRatesController action=index status=500 error='ActionView::Template::Error: undefined method _ransackers' for nil:NilClass' duration=335.24 view=0.00 db=19.58 F, [2019-03-27T15:03:16.240656 #49751] FATAL -- : ActionView::Template::Error (undefined method _ransackers' for nil:NilClass):
1: insert_tag renderer_for(:index)
activeadmin (1.0.0.pre3) lib/active_admin/filters/forms.rb:25:in default_input_type' activeadmin (1.0.0.pre3) lib/active_admin/filters/forms.rb:13:in filter'
activeadmin (1.0.0.pre3) lib/active_admin/filters/forms.rb:62:in block (2 levels) in active_admin_filters_form_for' activeadmin (1.0.0.pre3) lib/active_admin/filters/forms.rb:58:in each'
activeadmin (1.0.0.pre3) lib/active_admin/filters/forms.rb:58:in block in active_admin_filters_form_for' actionview (4.1.11) lib/action_view/helpers/capture_helper.rb:38:in block in capture'
actionview (4.1.11) lib/action_view/helpers/capture_helper.rb:200:in with_output_buffer' haml (5.0.1) lib/haml/helpers/action_view_xss_mods.rb:6:in with_output_buffer_with_haml_xss'
actionview (4.1.11) lib/action_view/helpers/capture_helper.rb:38:in capture' haml (5.0.1) lib/haml/helpers/action_view_mods.rb:47:in capture_with_haml'
actionview (4.1.11) lib/action_view/helpers/form_helper.rb:434:in form_for' haml (5.0.1) lib/haml/helpers/action_view_xss_mods.rb:29:in form_for_with_haml_xss'
activeadmin (1.0.0.pre3) lib/active_admin/filters/forms.rb:57:in active_admin_filters_form_for' arbre (1.1.1) lib/arbre/element.rb:180:in method_missing'
activeadmin (1.0.0.pre3) lib/active_admin/filters/resource_extension.rb:155:in block in filters_sidebar_section' activeadmin (1.0.0.pre3) lib/active_admin/views/components/sidebar_section.rb:25:in instance_exec'
activeadmin (1.0.0.pre3) lib/active_admin/views/components/sidebar_section.rb:25:in build_sidebar_content' activeadmin (1.0.0.pre3) lib/active_admin/views/components/sidebar_section.rb:13:in build'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:30:in block in build_tag' arbre (1.1.1) lib/arbre/context.rb:92:in with_current_arbre_element'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:49:in with_current_arbre_element' arbre (1.1.1) lib/arbre/element/builder_methods.rb:26:in build_tag'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:39:in insert_tag' arbre (1.1.1) lib/arbre/element/builder_methods.rb:14:in sidebar_section'
activeadmin (1.0.0.pre3) lib/active_admin/views/pages/base.rb:130:in block (2 levels) in build_sidebar' activeadmin (1.0.0.pre3) lib/active_admin/views/pages/base.rb:129:in collect'
activeadmin (1.0.0.pre3) lib/active_admin/views/pages/base.rb:129:in block in build_sidebar' arbre (1.1.1) lib/arbre/element/builder_methods.rb:31:in block in build_tag'
arbre (1.1.1) lib/arbre/context.rb:92:in with_current_arbre_element' arbre (1.1.1) lib/arbre/element/builder_methods.rb:49:in with_current_arbre_element'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:26:in build_tag' arbre (1.1.1) lib/arbre/element/builder_methods.rb:39:in insert_tag'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:14:in div' activeadmin (1.0.0.pre3) lib/active_admin/views/pages/base.rb:128:in build_sidebar'
activeadmin (1.0.0.pre3) lib/active_admin/views/pages/base.rb:76:in block in build_page_content' arbre (1.1.1) lib/arbre/element/builder_methods.rb:31:in block in build_tag'
arbre (1.1.1) lib/arbre/context.rb:92:in with_current_arbre_element' arbre (1.1.1) lib/arbre/element/builder_methods.rb:49:in with_current_arbre_element'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:26:in build_tag' arbre (1.1.1) lib/arbre/element/builder_methods.rb:39:in insert_tag'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:14:in div' activeadmin (1.0.0.pre3) lib/active_admin/views/pages/base.rb:74:in build_page_content'
activeadmin (1.0.0.pre3) lib/active_admin/views/pages/base.rb:52:in block (2 levels) in build_page' arbre (1.1.1) lib/arbre/element/builder_methods.rb:31:in block in build_tag'
arbre (1.1.1) lib/arbre/context.rb:92:in with_current_arbre_element' arbre (1.1.1) lib/arbre/element/builder_methods.rb:49:in with_current_arbre_element'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:26:in build_tag' arbre (1.1.1) lib/arbre/element/builder_methods.rb:39:in insert_tag'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:14:in div' activeadmin (1.0.0.pre3) lib/active_admin/views/pages/base.rb:48:in block in build_page'
arbre (1.1.1) lib/arbre/context.rb:92:in with_current_arbre_element' arbre (1.1.1) lib/arbre/element/builder_methods.rb:49:in with_current_arbre_element'
activeadmin (1.0.0.pre3) lib/active_admin/views/pages/base.rb:47:in build_page' activeadmin (1.0.0.pre3) lib/active_admin/views/pages/base.rb:10:in build'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:30:in block in build_tag' arbre (1.1.1) lib/arbre/context.rb:92:in with_current_arbre_element'
arbre (1.1.1) lib/arbre/element/builder_methods.rb:26:in build_tag' arbre (1.1.1) lib/arbre/element/builder_methods.rb:39:in insert_tag'
activeadmin (1.0.0.pre3) app/views/active_admin/resource/index.html.arb:2:in block in ___sers_rcstamato__rvm_gems_ruby_______gems_activeadmin_______pre__app_views_active_admin_resource_index_html_arb___3026201108365346669_70273310667560' arbre (1.1.1) lib/arbre/context.rb:45:in instance_eval'
arbre (1.1.1) lib/arbre/context.rb:45:in initialize' activeadmin (1.0.0.pre3) app/views/active_admin/resource/index.html.arb:1:in new'
activeadmin (1.0.0.pre3) app/views/active_admin/resource/index.html.arb:1:in ___sers_rcstamato__rvm_gems_ruby_______gems_activeadmin_______pre__app_views_active_admin_resource_index_html_arb___3026201108365346669_70273310667560' actionview (4.1.11) lib/action_view/template.rb:145:in block in render'
activesupport (4.1.11) lib/active_support/notifications.rb:159:in block in instrument' activesupport (4.1.11) lib/active_support/notifications/instrumenter.rb:20:in instrument'
activesupport (4.1.11) lib/active_support/notifications.rb:159:in instrument' actionview (4.1.11) lib/action_view/template.rb:339:in instrument'
actionview (4.1.11) lib/action_view/template.rb:143:in render' actionview (4.1.11) lib/action_view/renderer/template_renderer.rb:55:in block (2 levels) in render_template'
actionview (4.1.11) lib/action_view/renderer/abstract_renderer.rb:38:in block in instrument' activesupport (4.1.11) lib/active_support/notifications.rb:159:in block in instrument'
activesupport (4.1.11) lib/active_support/notifications/instrumenter.rb:20:in instrument' activesupport (4.1.11) lib/active_support/notifications.rb:159:in instrument'
actionview (4.1.11) lib/action_view/renderer/abstract_renderer.rb:38:in instrument' actionview (4.1.11) lib/action_view/renderer/template_renderer.rb:54:in block in render_template'
actionview (4.1.11) lib/action_view/renderer/template_renderer.rb:62:in render_with_layout' actionview (4.1.11) lib/action_view/renderer/template_renderer.rb:53:in render_template'
actionview (4.1.11) lib/action_view/renderer/template_renderer.rb:17:in render' actionview (4.1.11) lib/action_view/renderer/renderer.rb:42:in render_template'
actionview (4.1.11) lib/action_view/renderer/renderer.rb:23:in render' actionview (4.1.11) lib/action_view/rendering.rb:99:in _render_template'
actionpack (4.1.11) lib/action_controller/metal/streaming.rb:217:in _render_template' actionview (4.1.11) lib/action_view/rendering.rb:82:in render_to_body'
actionpack (4.1.11) lib/action_controller/metal/rendering.rb:32:in render_to_body' actionpack (4.1.11) lib/action_controller/metal/renderers.rb:32:in render_to_body'
actionpack (4.1.11) lib/abstract_controller/rendering.rb:25:in render' actionpack (4.1.11) lib/action_controller/metal/rendering.rb:16:in render'
actionpack (4.1.11) lib/action_controller/metal/instrumentation.rb:44:in block (2 levels) in render' activesupport (4.1.11) lib/active_support/core_ext/benchmark.rb:12:in block in ms'
/Users/rcstamato/.rvm/rubies/ruby-2.3.6/lib/ruby/2.3.0/benchmark.rb:308:in realtime' activesupport (4.1.11) lib/active_support/core_ext/benchmark.rb:12:in ms'
actionpack (4.1.11) lib/action_controller/metal/instrumentation.rb:44:in block in render' actionpack (4.1.11) lib/action_controller/metal/instrumentation.rb:87:in cleanup_view_runtime'
activerecord (4.1.11) lib/active_record/railties/controller_runtime.rb:25:in cleanup_view_runtime' actionpack (4.1.11) lib/action_controller/metal/instrumentation.rb:43:in render'
actionpack (4.1.11) lib/action_controller/metal/implicit_render.rb:10:in default_render' actionpack (4.1.11) lib/action_controller/metal/responder.rb:238:in default_render'
actionpack (4.1.11) lib/action_controller/metal/responder.rb:165:in to_html' responders (1.1.2) lib/responders/flash_responder.rb:107:in to_html'
actionpack (4.1.11) lib/action_controller/metal/responder.rb:158:in respond' actionpack (4.1.11) lib/action_controller/metal/responder.rb:151:in call'
actionpack (4.1.11) lib/action_controller/metal/mime_responds.rb:400:in respond_with' inherited_resources (1.7.2) lib/inherited_resources/actions.rb:7:in index'
activeadmin (1.0.0.pre3) lib/active_admin/resource_controller/streaming.rb:12:in index' actionpack (4.1.11) lib/action_controller/metal/implicit_render.rb:4:in send_action'
actionpack (4.1.11) lib/abstract_controller/base.rb:189:in process_action' actionpack (4.1.11) lib/action_controller/metal/rendering.rb:10:in process_action'
actionpack (4.1.11) lib/abstract_controller/callbacks.rb:20:in block in process_action' activesupport (4.1.11) lib/active_support/callbacks.rb:113:in call'
activesupport (4.1.11) lib/active_support/callbacks.rb:552:in block (2 levels) in compile' activesupport (4.1.11) lib/active_support/callbacks.rb:502:in call'
activesupport (4.1.11) lib/active_support/callbacks.rb:86:in run_callbacks' actionpack (4.1.11) lib/abstract_controller/callbacks.rb:19:in process_action'
actionpack (4.1.11) lib/action_controller/metal/rescue.rb:29:in process_action' actionpack (4.1.11) lib/action_controller/metal/instrumentation.rb:32:in block in process_action'
activesupport (4.1.11) lib/active_support/notifications.rb:159:in block in instrument' activesupport (4.1.11) lib/active_support/notifications/instrumenter.rb:20:in instrument'
activesupport (4.1.11) lib/active_support/notifications.rb:159:in instrument' actionpack (4.1.11) lib/action_controller/metal/instrumentation.rb:30:in process_action'
actionpack (4.1.11) lib/action_controller/metal/params_wrapper.rb:250:in process_action' activerecord (4.1.11) lib/active_record/railties/controller_runtime.rb:18:in process_action'
actionpack (4.1.11) lib/abstract_controller/base.rb:136:in process' actionview (4.1.11) lib/action_view/rendering.rb:30:in process'
actionpack (4.1.11) lib/action_controller/metal.rb:196:in dispatch' actionpack (4.1.11) lib/action_controller/metal/rack_delegation.rb:13:in dispatch'
actionpack (4.1.11) lib/action_controller/metal.rb:232:in block in action' actionpack (4.1.11) lib/action_dispatch/routing/route_set.rb:82:in dispatch'
actionpack (4.1.11) lib/action_dispatch/routing/route_set.rb:50:in call' actionpack (4.1.11) lib/action_dispatch/journey/router.rb:73:in block in call'
actionpack (4.1.11) lib/action_dispatch/journey/router.rb:59:in each' actionpack (4.1.11) lib/action_dispatch/journey/router.rb:59:in call'
actionpack (4.1.11) lib/action_dispatch/routing/route_set.rb:692:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
route_downcaser (1.1.5) lib/route_downcaser/downcase_route_middleware.rb:20:in _call' route_downcaser (1.1.5) lib/route_downcaser/downcase_route_middleware.rb:9:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' newrelic_rpm (4.2.0.334) lib/new_relic/rack/agent_hooks.rb:30:in traced_call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' newrelic_rpm (4.2.0.334) lib/new_relic/rack/browser_monitoring.rb:32:in traced_call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' rack (1.5.5) lib/rack/etag.rb:23:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' rack (1.5.5) lib/rack/conditionalget.rb:25:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' rack (1.5.5) lib/rack/head.rb:11:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' actionpack (4.1.11) lib/action_dispatch/middleware/params_parser.rb:27:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' actionpack (4.1.11) lib/action_dispatch/middleware/flash.rb:254:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' rack (1.5.5) lib/rack/session/abstract/id.rb:225:in context'
rack (1.5.5) lib/rack/session/abstract/id.rb:220:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
actionpack (4.1.11) lib/action_dispatch/middleware/cookies.rb:562:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
activerecord (4.1.11) lib/active_record/query_cache.rb:36:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
activerecord (4.1.11) lib/active_record/connection_adapters/abstract/connection_pool.rb:621:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
activerecord (4.1.11) lib/active_record/migration.rb:380:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
actionpack (4.1.11) lib/action_dispatch/middleware/callbacks.rb:29:in block in call' activesupport (4.1.11) lib/active_support/callbacks.rb:82:in run_callbacks'
actionpack (4.1.11) lib/action_dispatch/middleware/callbacks.rb:27:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
actionpack (4.1.11) lib/action_dispatch/middleware/reloader.rb:73:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
actionpack (4.1.11) lib/action_dispatch/middleware/remote_ip.rb:76:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
rollbar (2.12.0) lib/rollbar/middleware/rails/rollbar.rb:24:in block in call' rollbar (2.12.0) lib/rollbar.rb:735:in scoped'
rollbar (2.12.0) lib/rollbar/middleware/rails/rollbar.rb:22:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
actionpack (4.1.11) lib/action_dispatch/middleware/debug_exceptions.rb:17:in call' rollbar (2.12.0) lib/rollbar/middleware/rails/show_exceptions.rb:22:in call_with_rollbar'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' actionpack (4.1.11) lib/action_dispatch/middleware/show_exceptions.rb:30:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' lograge (0.6.0) lib/lograge/rails_ext/rack/logger.rb:15:in call_app'
railties (4.1.11) lib/rails/rack/logger.rb:22:in call' quiet_assets (1.1.0) lib/quiet_assets.rb:27:in call_with_quiet_assets'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' request_store (1.4.0) lib/request_store/middleware.rb:19:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' actionpack (4.1.11) lib/action_dispatch/middleware/request_id.rb:21:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' rack (1.5.5) lib/rack/methodoverride.rb:21:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' rack (1.5.5) lib/rack/runtime.rb:17:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' activesupport (4.1.11) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' rack (1.5.5) lib/rack/lock.rb:17:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' actionpack (4.1.11) lib/action_dispatch/middleware/static.rb:84:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' rack (1.5.5) lib/rack/sendfile.rb:112:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' actionpack (4.1.11) lib/action_dispatch/middleware/ssl.rb:24:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' secure_headers (5.0.5) lib/secure_headers/middleware.rb:13:in call'
newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call' railties (4.1.11) lib/rails/engine.rb:514:in call'
railties (4.1.11) lib/rails/application.rb:144:in call' newrelic_rpm (4.2.0.334) lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in call'
puma (3.11.2) lib/puma/configuration.rb:225:in call' puma (3.11.2) lib/puma/server.rb:624:in handle_request'
puma (3.11.2) lib/puma/server.rb:438:in process_client' puma (3.11.2) lib/puma/server.rb:302:in block in run'
puma (3.11.2) lib/puma/thread_pool.rb:120:in `block in spawn_thread'

Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment