0
votes

I'm currently running the following:

Rails 4.0.2
Devise 3.2.2

I've added three attributes to my user sign up form and also permitted the parameters in Devise in my application controller per the Devise documentation.

My problem now is that when I attempt to sign up I get the following error:

2 errors prohibited this user from being saved
Email can't be blank
Password can't be blank

I've permitted the additional parameters in my application controller as you can see below:

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception

  before_filter :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:first_name, :last_name, :profile_name, :email, :password, :password_confirmation) }
  end
end

My user model:

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

end

And lastly my sign up form:

<h2>Sign up</h2>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>
  <div><%= f.label :first_name %><br />
    <%= f.text_field :first_name, :autofocus => true %></div>

  <div><%= f.label :last_name %><br />
    <%= f.text_field :last_name %></div>

  <div><%= f.label :profile_name %><br />
    <%= f.text_field :profile_name %></div>

  <div><%= f.label :email %><br />
  <%= f.email_field :email %></div>

  <div><%= f.label :password %><br />
  <%= f.password_field :password %></div>

  <div><%= f.label :password_confirmation %><br />
  <%= f.password_field :password_confirmation %></div>

  <div><%= f.submit "Sign up" %></div>
<% end %>

<%= render "devise/shared/links" %>

I've tried two different variations to allow the additional parameters but I am still getting the same error message. Any ideas that I can try?

Thank you

1
I've actually answered my own question but I am unable to post an answer since I'm new to this site. For those who are interested, I had the gem 'protected_attributes' installed previously from testing another parameter validation method. When I uninstalled this gem by running gem uninstall protected_attributes and then bundle I was able to successful register a new user.sapmub

1 Answers

0
votes

Run gem uninstall protected_attributes, then bundle install, then restart the rails server.

(I'm just posting sapmub's above comment as an answer. Thank you for your help sapmub!)