Email has already been taken
即使在登录页面上我也会收到错误消息。早些时候这条消息没有显示,现在我不知道为什么它会检查:登录时电子邮件的唯一性。
我什至尝试validates_uniqueness_of :email
在 login( validates_uniqueness_of :email, :on => :create
) 上评论或指定它,但似乎没有任何效果。
我正在使用设计宝石。
这是我的登录页面:
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name) , :validate=>true) do |f| %>
<%= f.label :email %>
<%= f.email_field :email %>
<%= f.label :password %>
<p>
<%= f.password_field :password %>
</p>
<div id="lower">
<% if devise_mapping.rememberable? -%>
<%= f.check_box :remember_me %> <%= f.label :remember_me ,:class=>"check" %>
<% end %>
<%= f.submit "Login",:value=>"Login" %>
<div>
<%= link_to "Forgot your password?",new_password_path('registered_user') %>
</div>
<div>
<%= link_to "Sign Up", new_registered_user_registration_path %>
</div>
</div>
<% end %>
会话控制器
def create
respond_to do |format|
format.html{ super }
format.json do
.................
end
format.js do
.................
end
end
end
我的路线
devise_for :registered_users, :path_names=> {:sign_up=> "signup",:sign_in=> "login", :sign_out=> "logout"}, :controllers => { :registrations => "registrations",:sessions=>"sessions" }
我的模型:
devise :database_authenticatable, :registerable,
:recoverable, :trackable, :validatable
validates_presence_of :email,:phone, :address1,:first_name, :last_name,:city , :state, :zip_code
validates :email, :email_format => true
validates_presence_of :password, :on => :create
validates_presence_of :current_password, :on => :edit
validates_length_of :password, :minimum => 6, :on => :create
我找到了一种快速而肮脏的方法:)以这种方式添加内联验证:
<%= f.email_field :email , :validate => { :uniqueness => false },:type=>"text" %>
当你们得到什么问题时,请告诉我。