Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

undefined method `find_by_[:_id]' for Commitment:Class #79

Closed
pencilcheck opened this issue May 17, 2014 · 9 comments
Closed

undefined method `find_by_[:_id]' for Commitment:Class #79

pencilcheck opened this issue May 17, 2014 · 9 comments

Comments

@pencilcheck
Copy link
Contributor

When viewing a resource, the column for id is labeled as [:id], and thus find_by_[:id]. I wonder if there is a quick fix for this?

/Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/resource.rb:145:in public_send' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/resource.rb:145:infind_resource'
/Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/view_helpers/breadcrumb_helper.rb:17:in block in breadcrumb_links' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/view_helpers/breadcrumb_helper.rb:10:ineach'
/Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/view_helpers/breadcrumb_helper.rb:10:in each_with_index' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/view_helpers/breadcrumb_helper.rb:10:ineach'
/Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/view_helpers/breadcrumb_helper.rb:10:in map' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/view_helpers/breadcrumb_helper.rb:10:inbreadcrumb_links'
arbre (1.0.1) lib/arbre/element.rb:175:in method_missing' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/views/title_bar.rb:34:inbuild_breadcrumb'
/Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/views/title_bar.rb:17:in block in build_titlebar_left' arbre (1.0.1) lib/arbre/element/builder_methods.rb:31:inblock in build_tag'
arbre (1.0.1) lib/arbre/context.rb:92:in with_current_arbre_element' arbre (1.0.1) lib/arbre/element/builder_methods.rb:49:inwith_current_arbre_element'
arbre (1.0.1) lib/arbre/element/builder_methods.rb:26:in build_tag' arbre (1.0.1) lib/arbre/element/builder_methods.rb:39:ininsert_tag'
arbre (1.0.1) lib/arbre/element/builder_methods.rb:14:in div' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/views/title_bar.rb:16:inbuild_titlebar_left'
/Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/views/title_bar.rb:9:in build' arbre (1.0.1) lib/arbre/element/builder_methods.rb:30:inblock in build_tag'
arbre (1.0.1) lib/arbre/context.rb:92:in with_current_arbre_element' arbre (1.0.1) lib/arbre/element/builder_methods.rb:49:inwith_current_arbre_element'
arbre (1.0.1) lib/arbre/element/builder_methods.rb:26:in build_tag' arbre (1.0.1) lib/arbre/element/builder_methods.rb:39:ininsert_tag'
/Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/views/pages/base.rb:58:in build_title_bar' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/views/pages/base.rb:46:inblock (2 levels) in build_page'
arbre (1.0.1) lib/arbre/element/builder_methods.rb:31:in block in build_tag' arbre (1.0.1) lib/arbre/context.rb:92:inwith_current_arbre_element'
arbre (1.0.1) lib/arbre/element/builder_methods.rb:49:in with_current_arbre_element' arbre (1.0.1) lib/arbre/element/builder_methods.rb:26:inbuild_tag'
arbre (1.0.1) lib/arbre/element/builder_methods.rb:39:in insert_tag' arbre (1.0.1) lib/arbre/element/builder_methods.rb:14:indiv'
/Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/views/pages/base.rb:44:in block in build_page' arbre (1.0.1) lib/arbre/context.rb:92:inwith_current_arbre_element'
arbre (1.0.1) lib/arbre/element/builder_methods.rb:49:in with_current_arbre_element' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/views/pages/base.rb:43:inbuild_page'
/Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/lib/active_admin/views/pages/base.rb:10:in build' arbre (1.0.1) lib/arbre/element/builder_methods.rb:30:inblock in build_tag'
arbre (1.0.1) lib/arbre/context.rb:92:in with_current_arbre_element' arbre (1.0.1) lib/arbre/element/builder_methods.rb:26:inbuild_tag'
arbre (1.0.1) lib/arbre/element/builder_methods.rb:39:in insert_tag' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/app/views/active_admin/resource/edit.html.arb:1:inblock in ___sers_penn__rbenv_versions_______rc__lib_ruby_gems_______bundler_gems_active_admin___c______c_c_app_views_active_admin_resource_edit_html_arb__2874303258837437690_70110367411640'
arbre (1.0.1) lib/arbre/context.rb:45:in instance_eval' arbre (1.0.1) lib/arbre/context.rb:45:ininitialize'
/Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/app/views/active_admin/resource/edit.html.arb:1:in new' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-27c570994c1c/app/views/active_admin/resource/edit.html.arb:1:in___sers_penn__rbenv_versions_______rc__lib_ruby_gems_______bundler_gems_active_admin___c______c_c_app_views_active_admin_resource_edit_html_arb__2874303258837437690_70110367411640'
actionview (4.1.1) lib/action_view/template.rb:145:in block in render' activesupport (4.1.1) lib/active_support/notifications.rb:161:ininstrument'
actionview (4.1.1) lib/action_view/template.rb:339:in instrument' actionview (4.1.1) lib/action_view/template.rb:143:inrender'
actionview (4.1.1) lib/action_view/renderer/template_renderer.rb:55:in block (2 levels) in render_template' actionview (4.1.1) lib/action_view/renderer/abstract_renderer.rb:38:inblock in instrument'
activesupport (4.1.1) lib/active_support/notifications.rb:159:in block in instrument' activesupport (4.1.1) lib/active_support/notifications/instrumenter.rb:20:ininstrument'
activesupport (4.1.1) lib/active_support/notifications.rb:159:in instrument' actionview (4.1.1) lib/action_view/renderer/abstract_renderer.rb:38:ininstrument'
actionview (4.1.1) lib/action_view/renderer/template_renderer.rb:54:in block in render_template' actionview (4.1.1) lib/action_view/renderer/template_renderer.rb:62:inrender_with_layout'
actionview (4.1.1) lib/action_view/renderer/template_renderer.rb:53:in render_template' actionview (4.1.1) lib/action_view/renderer/template_renderer.rb:17:inrender'
actionview (4.1.1) lib/action_view/renderer/renderer.rb:42:in render_template' actionview (4.1.1) lib/action_view/renderer/renderer.rb:23:inrender'
actionview (4.1.1) lib/action_view/rendering.rb:99:in _render_template' actionpack (4.1.1) lib/action_controller/metal/streaming.rb:217:in_render_template'
actionview (4.1.1) lib/action_view/rendering.rb:82:in render_to_body' actionpack (4.1.1) lib/action_controller/metal/rendering.rb:32:inrender_to_body'
actionpack (4.1.1) lib/action_controller/metal/renderers.rb:32:in render_to_body' actionpack (4.1.1) lib/abstract_controller/rendering.rb:25:inrender'
actionpack (4.1.1) lib/action_controller/metal/rendering.rb:16:in render' actionpack (4.1.1) lib/action_controller/metal/instrumentation.rb:41:inblock (2 levels) in render'
activesupport (4.1.1) lib/active_support/core_ext/benchmark.rb:12:in block in ms' /Users/penn/.rbenv/versions/2.1.0-rc1/lib/ruby/2.1.0/benchmark.rb:294:inrealtime'
activesupport (4.1.1) lib/active_support/core_ext/benchmark.rb:12:in ms' actionpack (4.1.1) lib/action_controller/metal/instrumentation.rb:41:inblock in render'
actionpack (4.1.1) lib/action_controller/metal/instrumentation.rb:84:in cleanup_view_runtime' actionpack (4.1.1) lib/action_controller/metal/instrumentation.rb:40:inrender'
actionpack (4.1.1) lib/action_controller/metal/implicit_render.rb:10:in default_render' actionpack (4.1.1) lib/action_controller/metal/responder.rb:238:indefault_render'
actionpack (4.1.1) lib/action_controller/metal/responder.rb:165:in to_html' responders (1.0.0) lib/responders/flash_responder.rb:104:into_html'
actionpack (4.1.1) lib/action_controller/metal/responder.rb:158:in respond' actionpack (4.1.1) lib/action_controller/metal/responder.rb:151:incall'
actionpack (4.1.1) lib/action_controller/metal/mime_responds.rb:400:in respond_with' inherited_resources (1.4.1) lib/inherited_resources/actions.rb:25:inedit'
actionpack (4.1.1) lib/action_controller/metal/implicit_render.rb:4:in send_action' actionpack (4.1.1) lib/abstract_controller/base.rb:189:inprocess_action'
actionpack (4.1.1) lib/action_controller/metal/rendering.rb:10:in process_action' actionpack (4.1.1) lib/abstract_controller/callbacks.rb:20:inblock in process_action'
activesupport (4.1.1) lib/active_support/callbacks.rb:113:in call' activesupport (4.1.1) lib/active_support/callbacks.rb:113:incall'
activesupport (4.1.1) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.1) lib/active_support/callbacks.rb:166:incall'
activesupport (4.1.1) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.1) lib/active_support/callbacks.rb:166:incall'
activesupport (4.1.1) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.1) lib/active_support/callbacks.rb:229:incall'
activesupport (4.1.1) lib/active_support/callbacks.rb:229:in block in halting' activesupport (4.1.1) lib/active_support/callbacks.rb:229:incall'
activesupport (4.1.1) lib/active_support/callbacks.rb:229:in block in halting' activesupport (4.1.1) lib/active_support/callbacks.rb:166:incall'
activesupport (4.1.1) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.1) lib/active_support/callbacks.rb:166:incall'
activesupport (4.1.1) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.1) lib/active_support/callbacks.rb:166:incall'
activesupport (4.1.1) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.1) lib/active_support/callbacks.rb:86:incall'
activesupport (4.1.1) lib/active_support/callbacks.rb:86:in run_callbacks' actionpack (4.1.1) lib/abstract_controller/callbacks.rb:19:inprocess_action'
actionpack (4.1.1) lib/action_controller/metal/rescue.rb:29:in process_action' actionpack (4.1.1) lib/action_controller/metal/instrumentation.rb:31:inblock in process_action'
activesupport (4.1.1) lib/active_support/notifications.rb:159:in block in instrument' activesupport (4.1.1) lib/active_support/notifications/instrumenter.rb:20:ininstrument'
activesupport (4.1.1) lib/active_support/notifications.rb:159:in instrument' actionpack (4.1.1) lib/action_controller/metal/instrumentation.rb:30:inprocess_action'
actionpack (4.1.1) lib/action_controller/metal/params_wrapper.rb:250:in process_action' actionpack (4.1.1) lib/abstract_controller/base.rb:136:inprocess'
actionview (4.1.1) lib/action_view/rendering.rb:30:in process' actionpack (4.1.1) lib/action_controller/metal.rb:195:indispatch'
actionpack (4.1.1) lib/action_controller/metal/rack_delegation.rb:13:in dispatch' actionpack (4.1.1) lib/action_controller/metal.rb:231:inblock in action'
actionpack (4.1.1) lib/action_dispatch/routing/route_set.rb:80:in call' actionpack (4.1.1) lib/action_dispatch/routing/route_set.rb:80:indispatch'
actionpack (4.1.1) lib/action_dispatch/routing/route_set.rb:48:in call' actionpack (4.1.1) lib/action_dispatch/journey/router.rb:71:inblock in call'
actionpack (4.1.1) lib/action_dispatch/journey/router.rb:59:in each' actionpack (4.1.1) lib/action_dispatch/journey/router.rb:59:incall'
actionpack (4.1.1) lib/action_dispatch/routing/route_set.rb:676:in call' omniauth (1.2.1) lib/omniauth/strategy.rb:186:incall!'
omniauth (1.2.1) lib/omniauth/strategy.rb:164:in call' omniauth (1.2.1) lib/omniauth/builder.rb:59:incall'
warden (1.2.3) lib/warden/manager.rb:35:in block in call' warden (1.2.3) lib/warden/manager.rb:34:incatch'
warden (1.2.3) lib/warden/manager.rb:34:in call' rack (1.5.2) lib/rack/etag.rb:23:incall'
rack (1.5.2) lib/rack/conditionalget.rb:25:in call' rack (1.5.2) lib/rack/head.rb:11:incall'
actionpack (4.1.1) lib/action_dispatch/middleware/params_parser.rb:27:in call' actionpack (4.1.1) lib/action_dispatch/middleware/flash.rb:254:incall'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in context' rack (1.5.2) lib/rack/session/abstract/id.rb:220:incall'
actionpack (4.1.1) lib/action_dispatch/middleware/cookies.rb:560:in call' actionpack (4.1.1) lib/action_dispatch/middleware/callbacks.rb:29:inblock in call'
activesupport (4.1.1) lib/active_support/callbacks.rb:82:in run_callbacks' actionpack (4.1.1) lib/action_dispatch/middleware/callbacks.rb:27:incall'
actionpack (4.1.1) lib/action_dispatch/middleware/reloader.rb:73:in call' actionpack (4.1.1) lib/action_dispatch/middleware/remote_ip.rb:76:incall'
actionpack (4.1.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in call' actionpack (4.1.1) lib/action_dispatch/middleware/show_exceptions.rb:30:incall'
railties (4.1.1) lib/rails/rack/logger.rb:38:in call_app' railties (4.1.1) lib/rails/rack/logger.rb:20:inblock in call'
activesupport (4.1.1) lib/active_support/tagged_logging.rb:68:in block in tagged' activesupport (4.1.1) lib/active_support/tagged_logging.rb:26:intagged'
activesupport (4.1.1) lib/active_support/tagged_logging.rb:68:in tagged' railties (4.1.1) lib/rails/rack/logger.rb:20:incall'
actionpack (4.1.1) lib/action_dispatch/middleware/request_id.rb:21:in call' rack (1.5.2) lib/rack/methodoverride.rb:21:incall'
rack (1.5.2) lib/rack/runtime.rb:17:in call' activesupport (4.1.1) lib/active_support/cache/strategy/local_cache_middleware.rb:26:incall'
rack (1.5.2) lib/rack/lock.rb:17:in call' actionpack (4.1.1) lib/action_dispatch/middleware/static.rb:64:incall'
rack (1.5.2) lib/rack/sendfile.rb:112:in call' railties (4.1.1) lib/rails/engine.rb:514:incall'
railties (4.1.1) lib/rails/application.rb:144:in call' rack (1.5.2) lib/rack/content_length.rb:14:incall'
puma (2.8.2) lib/puma/server.rb:490:in handle_request' puma (2.8.2) lib/puma/server.rb:361:inprocess_client'
puma (2.8.2) lib/puma/server.rb:254:in block in run' puma (2.8.2) lib/puma/thread_pool.rb:92:incall'
puma (2.8.2) lib/puma/thread_pool.rb:92:in `block in spawn_thread'

@pencilcheck
Copy link
Contributor Author

I think I found out the reason: activeadmin is using primary_key to compose find_by method, which returns [:_id] therefore find_by_[:_id]. I wonder if there is a way to get around this...

@pencilcheck
Copy link
Contributor Author

Found a better cleaner solution: write an initializer call it mongoid.rb and paste this code in:

module Mongoid
  module Document
    def self.included(base)
      base.class_eval do
        def self.primary_key
          'id'
        end
      end
    end
  end
end

@fred
Copy link

fred commented Jun 21, 2014

For compatibility with activeadmin 1.0 you just need this module patching

module ActiveAdmin
  class Resource

    private

    def method_for_find
      resources_configuration[:self][:finder] || :find
    end

  end
end

@oliviermilla
Copy link

@fred this doesn't fix it here but only turns the error into:

[:_id] is not a symbol

I'll look for a patch. clues? :)

@fred
Copy link

fred commented Jul 2, 2014

@muichkine can you add a full trace of the error?

@oliviermilla
Copy link

@fred I suppose this #77 is the same backtrace

@fred
Copy link

fred commented Jul 2, 2014

@muichkine on an app I have using elia/activeadmin-mongoid I have this snippet

module ActiveAdmin::Mongoid::Document
  module ClassMethods
    def primary_key
      :_id
    end
  end
end

on all my recent rails 4 apps, I'm using https://github.com/fred/activeadmin-mongoid/tree/activeadmin-1.0 together with ActiveAdmin master.
Travis is still failing, need to look into it for my pull request here.

@oliviermilla
Copy link

@fred Thanks, this fixed it :)

@pencilcheck
Copy link
Contributor Author

I believe if you follow my spec here, you don't need any patch at all, except maybe this snippet from this issue heartcombo/devise#2949:

#HACK FOR DEVISE 3.2.4
def self.serialize_into_session(record)
    [record.id.to_s, record.authenticatable_salt]
end

In the user class used for devise

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants