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" %>
我試過兩種不同的變化,以允許額外的參數,但我仍然收到相同的錯誤消息。任何想法,我可以嘗試?
謝謝
其實我已經回答了我自己的問題,但我不能,因爲我是新來發佈一個答案這個網站。對於那些有興趣的人,我已經安裝了之前安裝的gem'protected_attributes'來測試另一個參數驗證方法。當我通過運行'gem uninstall protected_attributes'然後'bundle'來卸載這個gem時,我能夠成功註冊一個新用戶。 – sapmub