0

Recently updated from Rails 3 to Rails 4 and am currently having issues with custom fields in Devise. I've read the documentation and many posts here on stackoverflow, but still seem to be having issues.

The error I see in the server log is the following:

Unpermitted parameters: f_name, l_name, phone
ArgumentError (wrong number of arguments (0 for 1)):

Can anyone spot the problem here?

# controllers/users/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
 before_filter :configure_permitted_parameters

 protected

 def configure_permitted_parameters
  devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:f_name, :l_name, :phone) }
 end
end

#routes.rb
devise_for :users, controllers: { registrations: "users/registrations" }

Trace:

Started POST "/users" for 127.0.0.1 at 2015-03-05 14:09:12 -0500
    Started POST "/users" for 127.0.0.1 at 2015-03-05 14:09:12 -0500
    Processing by Devise::RegistrationsController#create as HTML
    Processing by Devise::RegistrationsController#create as HTML
      Parameters: {"utf8"=>"✓", "authenticity_token"=>"ruHMeTinWKkFMODAO2wCRX3j3uQLYQqqcWCthB40IVU=", "user"=>{"email"=>"test@m3fin.com", "password"=>"test1234", "password_confirmation"=>"test1234"}, "commit"=>"Sign up"}
      Parameters: {"utf8"=>"✓", "authenticity_token"=>"ruHMeTinWKkFMODAO2wCRX3j3uQLYQqqcWCthB40IVU=", "user"=>{"email"=>"test@m3fin.com", "password"=>"test1234", "password_confirmation"=>"test1234"}, "commit"=>"Sign up"}
    Unpermitted parameters: password, password_confirmation
    Unpermitted parameters: password, password_confirmation
       (0.2ms)  BEGIN
       (0.2ms)  BEGIN
      User Exists (0.4ms)  SELECT  1 AS one FROM "users"  WHERE "users"."email" = 'test@m3fin.com' LIMIT 1
      User Exists (0.4ms)  SELECT  1 AS one FROM "users"  WHERE "users"."email" = 'test@m3fin.com' LIMIT 1
      User Exists (0.4ms)  SELECT  1 AS one FROM "users"  WHERE LOWER("users"."email") = LOWER('test@m3fin.com') LIMIT 1
      User Exists (0.4ms)  SELECT  1 AS one FROM "users"  WHERE LOWER("users"."email") = LOWER('test@m3fin.com') LIMIT 1
       (0.1ms)  ROLLBACK
       (0.1ms)  ROLLBACK
    Completed 500 Internal Server Error in 22ms
    Completed 500 Internal Server Error in 22ms

    ArgumentError (wrong number of arguments (0 for 1)):
      activerecord (4.1.6) lib/active_record/persistence.rb:227:in `update'
      activesupport (4.1.6) lib/active_support/callbacks.rb:424:in `block in make_lambda'
      activesupport (4.1.6) lib/active_support/callbacks.rb:402:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:402:in `block in invert_lambda'
      activesupport (4.1.6) lib/active_support/callbacks.rb:175:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:175:in `block (2 levels) in conditional'
      activesupport (4.1.6) lib/active_support/callbacks.rb:175:in `each'
      activesupport (4.1.6) lib/active_support/callbacks.rb:175:in `all?'
      activesupport (4.1.6) lib/active_support/callbacks.rb:175:in `block in conditional'
      activesupport (4.1.6) lib/active_support/callbacks.rb:185:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:185:in `block in simple'
      activesupport (4.1.6) lib/active_support/callbacks.rb:185:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:185:in `block in simple'
      activesupport (4.1.6) lib/active_support/callbacks.rb:185:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:185:in `block in simple'
      activesupport (4.1.6) lib/active_support/callbacks.rb:185:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:185:in `block in simple'
      activesupport (4.1.6) lib/active_support/callbacks.rb:178:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:178:in `block in conditional'
      activesupport (4.1.6) lib/active_support/callbacks.rb:178:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:178:in `block in conditional'
      activesupport (4.1.6) lib/active_support/callbacks.rb:178:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:178:in `block in conditional'
      activesupport (4.1.6) lib/active_support/callbacks.rb:178:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:178:in `block in conditional'
      activesupport (4.1.6) lib/active_support/callbacks.rb:178:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:178:in `block in conditional'
      activesupport (4.1.6) lib/active_support/callbacks.rb:86:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:86:in `run_callbacks'
      activemodel (4.1.6) lib/active_model/validations.rb:376:in `run_validations!'
      activemodel (4.1.6) lib/active_model/validations/callbacks.rb:111:in `block in run_validations!'
      activesupport (4.1.6) lib/active_support/callbacks.rb:113:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:113:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:166:in `block in halting'
      activesupport (4.1.6) lib/active_support/callbacks.rb:166:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:166:in `block in halting'
      activesupport (4.1.6) lib/active_support/callbacks.rb:86:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:86:in `run_callbacks'
      activemodel (4.1.6) lib/active_model/validations/callbacks.rb:111:in `run_validations!'
      activemodel (4.1.6) lib/active_model/validations.rb:317:in `valid?'
      activerecord (4.1.6) lib/active_record/validations.rb:70:in `valid?'
      activerecord (4.1.6) lib/active_record/validations.rb:77:in `perform_validations'
      activerecord (4.1.6) lib/active_record/validations.rb:51:in `save'
      activerecord (4.1.6) lib/active_record/attribute_methods/dirty.rb:21:in `save'
      activerecord (4.1.6) lib/active_record/transactions.rb:268:in `block (2 levels) in save'
      activerecord (4.1.6) lib/active_record/transactions.rb:329:in `block in with_transaction_returning_status'
      activerecord (4.1.6) lib/active_record/connection_adapters/abstract/database_statements.rb:201:in `block in transaction'
      activerecord (4.1.6) lib/active_record/connection_adapters/abstract/database_statements.rb:209:in `within_new_transaction'
      activerecord (4.1.6) lib/active_record/connection_adapters/abstract/database_statements.rb:201:in `transaction'
      activerecord (4.1.6) lib/active_record/transactions.rb:208:in `transaction'
      activerecord (4.1.6) lib/active_record/transactions.rb:326:in `with_transaction_returning_status'
      activerecord (4.1.6) lib/active_record/transactions.rb:268:in `block in save'
      activerecord (4.1.6) lib/active_record/transactions.rb:283:in `rollback_active_record_state!'
      activerecord (4.1.6) lib/active_record/transactions.rb:267:in `save'
      devise (3.4.1) app/controllers/devise/registrations_controller.rb:19:in `create'
      actionpack (4.1.6) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
      actionpack (4.1.6) lib/abstract_controller/base.rb:189:in `process_action'
      actionpack (4.1.6) lib/action_controller/metal/rendering.rb:10:in `process_action'
      actionpack (4.1.6) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
      activesupport (4.1.6) lib/active_support/callbacks.rb:113:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:113:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:149:in `block in halting_and_conditional'
      activesupport (4.1.6) lib/active_support/callbacks.rb:229:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:229:in `block in halting'
      activesupport (4.1.6) lib/active_support/callbacks.rb:229:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:229:in `block in halting'
      activesupport (4.1.6) lib/active_support/callbacks.rb:166:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:166:in `block in halting'
      activesupport (4.1.6) lib/active_support/callbacks.rb:166:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:166:in `block in halting'
      activesupport (4.1.6) lib/active_support/callbacks.rb:149:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:149:in `block in halting_and_conditional'
      activesupport (4.1.6) lib/active_support/callbacks.rb:149:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:149:in `block in halting_and_conditional'
      activesupport (4.1.6) lib/active_support/callbacks.rb:86:in `call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:86:in `run_callbacks'
      actionpack (4.1.6) lib/abstract_controller/callbacks.rb:19:in `process_action'
      actionpack (4.1.6) lib/action_controller/metal/rescue.rb:29:in `process_action'
      actionpack (4.1.6) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
      activesupport (4.1.6) lib/active_support/notifications.rb:159:in `block in instrument'
      activesupport (4.1.6) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
      activesupport (4.1.6) lib/active_support/notifications.rb:159:in `instrument'
      actionpack (4.1.6) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
      actionpack (4.1.6) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
      activerecord (4.1.6) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
      actionpack (4.1.6) lib/abstract_controller/base.rb:136:in `process'
      actionview (4.1.6) lib/action_view/rendering.rb:30:in `process'
      actionpack (4.1.6) lib/action_controller/metal.rb:196:in `dispatch'
      actionpack (4.1.6) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
      actionpack (4.1.6) lib/action_controller/metal.rb:232:in `block in action'
      actionpack (4.1.6) lib/action_dispatch/routing/route_set.rb:82:in `call'
      actionpack (4.1.6) lib/action_dispatch/routing/route_set.rb:82:in `dispatch'
      actionpack (4.1.6) lib/action_dispatch/routing/route_set.rb:50:in `call'
      actionpack (4.1.6) lib/action_dispatch/routing/mapper.rb:45:in `call'
      actionpack (4.1.6) lib/action_dispatch/journey/router.rb:73:in `block in call'
      actionpack (4.1.6) lib/action_dispatch/journey/router.rb:59:in `each'
      actionpack (4.1.6) lib/action_dispatch/journey/router.rb:59:in `call'
      actionpack (4.1.6) lib/action_dispatch/routing/route_set.rb:678:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/rack/agent_hooks.rb:30:in `traced_call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/rack/browser_monitoring.rb:23:in `traced_call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
      warden (1.2.3) lib/warden/manager.rb:34:in `catch'
      warden (1.2.3) lib/warden/manager.rb:34:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      rack (1.5.2) lib/rack/etag.rb:23:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      rack (1.5.2) lib/rack/conditionalget.rb:35:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      rack (1.5.2) lib/rack/head.rb:11:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      actionpack (4.1.6) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      actionpack (4.1.6) lib/action_dispatch/middleware/flash.rb:254:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
      rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      actionpack (4.1.6) lib/action_dispatch/middleware/cookies.rb:560:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      activerecord (4.1.6) lib/active_record/query_cache.rb:36:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      activerecord (4.1.6) lib/active_record/connection_adapters/abstract/connection_pool.rb:621:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      activerecord (4.1.6) lib/active_record/migration.rb:380:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      actionpack (4.1.6) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
      activesupport (4.1.6) lib/active_support/callbacks.rb:82:in `run_callbacks'
      actionpack (4.1.6) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      actionpack (4.1.6) lib/action_dispatch/middleware/reloader.rb:73:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      actionpack (4.1.6) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      actionpack (4.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      actionpack (4.1.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      railties (4.1.6) lib/rails/rack/logger.rb:38:in `call_app'
      railties (4.1.6) lib/rails/rack/logger.rb:20:in `block in call'
      activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `block in tagged'
      activesupport (4.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'
      activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `tagged'
      railties (4.1.6) lib/rails/rack/logger.rb:20:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      actionpack (4.1.6) lib/action_dispatch/middleware/request_id.rb:21:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      rack (1.5.2) lib/rack/runtime.rb:17:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      activesupport (4.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      rack (1.5.2) lib/rack/lock.rb:17:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      actionpack (4.1.6) lib/action_dispatch/middleware/static.rb:64:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      railties (4.1.6) lib/rails/engine.rb:514:in `call'
      railties (4.1.6) lib/rails/application.rb:144:in `call'
      railties (4.1.6) lib/rails/railtie.rb:194:in `public_send'
      railties (4.1.6) lib/rails/railtie.rb:194:in `method_missing'
      newrelic_rpm (3.10.0.279) lib/new_relic/agent/instrumentation/middleware_tracing.rb:67:in `call'
      rack (1.5.2) lib/rack/lock.rb:17:in `call'
      rack (1.5.2) lib/rack/content_length.rb:14:in `call'
      rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
      /Users/remybartolotta/.rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
      /Users/remybartolotta/.rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
      /Users/remybartolotta/.rvm/rubies/ruby-2.1.3/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
  • UPDATE: I removed the custom fields from the Sign Up page and continue to receive the ArgumentError (wrong number of arguments (0 for 1)) error, which leads me to believe the problem has little or nothing to do with the custom fields – Remy Bartolotta Mar 05 '15 at 19:17

1 Answers1

0

please put your method in Application controller

class ApplicationController < ActionController::Base
 before_action :configure_permitted_parameters, if: :devise_controller?

 protected

  def configure_permitted_parameters
   devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:f_name, :l_name, :phone, :email, :password) }
  end
end

please review devise Strong Parameter concept from https://github.com/plataformatec/devise

Divyang Hirpara
  • 948
  • 4
  • 22
  • When I use the above method, I no longer receive the `Unpermitted parameters: f_name, l_name, phone` error, however I still have an issue with `ArgumentError (wrong number of arguments (0 for 1))`. Any thoughts? – Remy Bartolotta Feb 25 '15 at 18:39
  • I appreciate the effort, but this does not work.. I again receive the same error `Unpermitted parameters: f_name, l_name, phone` and `ArgumentError (wrong number of arguments (0 for 1))` – Remy Bartolotta Feb 26 '15 at 21:27
  • UPDATE: I removed the custom fields from the Sign Up page and continue to receive the `ArgumentError (wrong number of arguments (0 for 1))` error, which leads me to believe the problem has little or nothing to do with the custom fields – Remy Bartolotta Feb 26 '15 at 21:35
  • First remove your custom controller and custom routes then put code as I mention above and check. – Divyang Hirpara Feb 27 '15 at 04:39
  • can I view your code in github or any other ? So I can help you better. – Divyang Hirpara Feb 28 '15 at 03:27
  • I appreciate the assistance! I've invited you to my github repo – Remy Bartolotta Feb 28 '15 at 16:28
  • please review this http://stackoverflow.com/questions/17767449/rails-4-0-with-devise-nested-attributes-unpermited-parameters?rq=1 – Divyang Hirpara Feb 28 '15 at 16:43