2014-01-17 63 views
0

我目前正在運行的以下內容:在設計中添加額外的參數不允許用戶註冊

的Rails 4.0.2
設計3.2.2

我添加了三個屬性到我的用戶註冊表格並且還允許Devise文檔中的應用控制器中的Devise中的參數。

我現在的問題是,當我嘗試登錄了,我得到以下錯誤:

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

我允許我的應用程序控制器中的附加參數,你可以看到如下:

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 

我的用戶模型:

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 

而且最後我的註冊表格:

<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" %> 

我試過兩種不同的變化,以允許額外的參數,但我仍然收到相同的錯誤消息。任何想法,我可以嘗試?

謝謝

+1

其實我已經回答了我自己的問題,但我不能,因爲我是新來發佈一個答案這個網站。對於那些有興趣的人,我已經安裝了之前安裝的gem'protected_attributes'來測試另一個參數驗證方法。當我通過運行'gem uninstall protected_attributes'然後'bundle'來卸載這個gem時,我能夠成功註冊一個新用戶。 – sapmub

回答

0

運行gem uninstall protected_attributes,然後bundle install,然後重新啓動服務器導軌。

(我只是張貼sapmub的上述評論的答案。感謝您的幫助sapmub!)

相關問題