电子邮件已经在设计的登录页面上进行了

时间:2013-11-09 11:03:57

标签: ruby-on-rails ruby devise

即使在登录页面上我也遇到Email has already been taken错误。此前此消息未显示,我不知道为什么检查:登录时电子邮件的唯一性。

我甚至尝试过评论validates_uniqueness_of :email或在登录时指定它(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 %>

SessionController

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

当你们得到问题时,请告诉我。

0 个答案:

没有答案