这是indexloc提供的服务,不要输入任何密码
Skip to content

[Delete] causes NoMethodError #53

@TJuergensen

Description

@TJuergensen

Hello,
I am pretty new to Ruby and have to fix a ThingSpeak server.
The problem is, the admin account cannot delete any accounts or Channels.
Neither of these errors show an application trace, only full traces

Error of Account-deletion:
NoMethodError in Admin::ChannelsController#destroy
undefined method `name' for nil:NilClass
Full-Trace:


vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/has_many_association.rb:81:in `cached_counter_attribute_name'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/has_many_association.rb:104:in `inverse_updates_counter_cache?'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/has_many_association.rb:114:in `delete_records'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/collection_association.rb:493:in `remove_records'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/collection_association.rb:486:in `block in delete_or_destroy'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/collection_association.rb:152:in `block in transaction'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:211:in `transaction'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/transactions.rb:209:in `transaction'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/collection_association.rb:151:in `transaction'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/collection_association.rb:486:in `delete_or_destroy'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/collection_association.rb:247:in `destroy'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/collection_association.rb:170:in `destroy_all'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/has_many_association.rb:26:in `handle_dependency'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/associations/builder/association.rb:97:in `has_many_dependent_for_api_keys'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/callbacks.rb:377:in `_run__4271050200535634837__destroy__callbacks'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/callbacks.rb:80:in `run_callbacks'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/callbacks.rb:292:in `destroy'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/transactions.rb:265:in `block in destroy'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/transactions.rb:330:in `block in with_transaction_returning_status'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:221:in `within_new_transaction'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/transactions.rb:209:in `transaction'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/transactions.rb:327:in `with_transaction_returning_status'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/transactions.rb:265:in `destroy'
vendor/bundle/ruby/2.3.0/bundler/gems/active_admin-0c83cfe0b9b4/lib/active_admin/resource_controller/data_access.rb:189:in `block in destroy_resource'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/core_ext/object/try.rb:45:in `public_send'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/core_ext/object/try.rb:45:in `try'
vendor/bundle/ruby/2.3.0/bundler/gems/active_admin-0c83cfe0b9b4/lib/active_admin/callbacks.rb:79:in `block (2 levels) in define_active_admin_callbacks'
vendor/bundle/ruby/2.3.0/bundler/gems/active_admin-0c83cfe0b9b4/lib/active_admin/resource_controller/data_access.rb:188:in `destroy_resource'
vendor/bundle/ruby/2.3.0/gems/inherited_resources-1.4.1/lib/inherited_resources/actions.rb:58:in `destroy'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/abstract_controller/base.rb:189:in `process_action'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_controller/metal/rendering.rb:10:in `process_action'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/abstract_controller/callbacks.rb:18:in `block in process_action'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/callbacks.rb:493:in `_run__3531449486506308946__process_action__callbacks'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/callbacks.rb:80:in `run_callbacks'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/abstract_controller/callbacks.rb:17:in `process_action'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_controller/metal/rescue.rb:29:in `process_action'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/notifications.rb:159:in `block in instrument'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/notifications.rb:159:in `instrument'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/abstract_controller/base.rb:136:in `process'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/abstract_controller/rendering.rb:44:in `process'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_controller/metal.rb:195:in `dispatch'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_controller/metal.rb:231:in `block in action'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/routing/route_set.rb:80:in `dispatch'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/routing/route_set.rb:48:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/journey/router.rb:71:in `block in call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/journey/router.rb:59:in `each'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/journey/router.rb:59:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/routing/route_set.rb:674:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/rack/error_collector.rb:50:in `traced_call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/rack/agent_hooks.rb:26:in `traced_call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/rack/browser_monitoring.rb:23:in `traced_call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
vendor/bundle/ruby/2.3.0/gems/warden-1.2.3/lib/warden/manager.rb:35:in `block in call'
vendor/bundle/ruby/2.3.0/gems/warden-1.2.3/lib/warden/manager.rb:34:in `catch'
vendor/bundle/ruby/2.3.0/gems/warden-1.2.3/lib/warden/manager.rb:34:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/rack-1.5.2/lib/rack/etag.rb:23:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/rack-1.5.2/lib/rack/conditionalget.rb:35:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-xml_parser-1.0.1/lib/action_dispatch/xml_params_parser.rb:16:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/flash.rb:241:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/rack-1.5.2/lib/rack/session/abstract/id.rb:225:in `context'
vendor/bundle/ruby/2.3.0/gems/rack-1.5.2/lib/rack/session/abstract/id.rb:220:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/cookies.rb:486:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/query_cache.rb:36:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/activerecord-4.0.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/callbacks.rb:373:in `_run__4364726816475611795__call__callbacks'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/callbacks.rb:80:in `run_callbacks'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/reloader.rb:64:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/railties-4.0.5/lib/rails/rack/logger.rb:38:in `call_app'
vendor/bundle/ruby/2.3.0/gems/railties-4.0.5/lib/rails/rack/logger.rb:20:in `block in call'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/tagged_logging.rb:68:in `block in tagged'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/tagged_logging.rb:26:in `tagged'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/tagged_logging.rb:68:in `tagged'
vendor/bundle/ruby/2.3.0/gems/railties-4.0.5/lib/rails/rack/logger.rb:20:in `call'
vendor/bundle/ruby/2.3.0/gems/quiet_assets-1.0.3/lib/quiet_assets.rb:23:in `call_with_quiet_assets'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/request_id.rb:21:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/rack-1.5.2/lib/rack/methodoverride.rb:21:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/rack-1.5.2/lib/rack/runtime.rb:17:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.5/lib/active_support/cache/strategy/local_cache.rb:83:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/rack-utf8_sanitizer-1.2.2/lib/rack/utf8_sanitizer.rb:15:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/rack-1.5.2/lib/rack/lock.rb:17:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/actionpack-4.0.5/lib/action_dispatch/middleware/static.rb:64:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/rack-1.5.2/lib/rack/sendfile.rb:112:in `call'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/railties-4.0.5/lib/rails/engine.rb:511:in `call'
vendor/bundle/ruby/2.3.0/gems/railties-4.0.5/lib/rails/application.rb:97:in `call'
vendor/bundle/ruby/2.3.0/gems/railties-4.0.5/lib/rails/railtie/configurable.rb:30:in `method_missing'
vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.3.0/gems/rack-1.5.2/lib/rack/content_length.rb:14:in `call'
vendor/bundle/ruby/2.3.0/gems/puma-2.9.1/lib/puma/server.rb:490:in `handle_request'
vendor/bundle/ruby/2.3.0/gems/puma-2.9.1/lib/puma/server.rb:361:in `process_client'
vendor/bundle/ruby/2.3.0/gems/puma-2.9.1/lib/puma/server.rb:254:in `block in run'
vendor/bundle/ruby/2.3.0/gems/puma-2.9.1/lib/puma/thread_pool.rb:92:in `block in spawn_thread'

Request

Parameters:

{"_method"=>"delete",
 "authenticity_token"=>"mVLFQMTJRvdazg6BpsFs1FTirLJhodqHxwZsaeYrEFI=",
 "id"=>"5" 

Response

Headers:
None

As for the channel-deletion, its the same as Issue #52 , except for the fact, that there is no application Trace shown.

admin-user routing:

admin_user                         
GET        /admin/users/:id(.:format)                                  admin/users#show 
PATCH      /admin/users/:id(.:format)                                  admin/users#update
PUT        /admin/users/:id(.:format)                                  admin/users#update
DELETE     /admin/users/:id(.:format)                                  admin/users#destroy

Each user can delete their own account without problem, just the admin account cannot do that.

app/controlers/users_controller.rb (pastebin) (used pastebin due to long file)

app/admin/user.rb

ctiveAdmin.register User do
  require 'csv'

  filter :email
  filter :login
  filter :created_at

  permit_params :email, :login, :bio, :website

  index do
    column :id
    column :email
    column :login
    column :created_at
    actions
  end

  show do
    attributes_table do
      rows :id, :email, :login, :time_zone, :bio, :website, :created_at, :sign_in_count, :current_sign_in_at, :last_sign_in_at, :current_sign_in_ip, :last_sign_in_ip
    end
    panel 'Channels' do
      table_for user.channels do
        column :id
        column(:name) { |channel| link_to channel.name, channel }
      end
    end
  end

  form do |f|
    f.semantic_errors *f.object.errors.keys
    f.inputs :email, :login
    f.actions
  end

  # custom action for signups per day
  collection_action :signups, :method => :get, :format => :csv do
    @csv_headers = [:day, :signups]
    @days = User.signups_per_day
  end

  # custom action for emails list
  collection_action :emails, :method => :get do
    @users = User.all
  end

end

I don't know which other info is important, feel free to ask if anything else is needed.

Does anyone have a clue how to fix this?
Thanks in advice

TJ

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions