stavo seguendo questo how-to su How To: Allow users to sign in using their username or email address e hanno tutti i passaggi dettagliati lì, ma quando provo a registrarsi tramite il modulo di registrations/new.html.erb
ottengo questo errore:"Email non può essere vuoto" Elaborare utilizzando nome utente o email
Email can't be blank
Nel mio modello ho:
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :username, :email, :password, :password_confirmation, :remember_me
attr_accessor :login
attr_accessible :login
e
def self.find_first_by_auth_conditions(warden_conditions)
conditions = warden_conditions.dup
if login = conditions.delete(:login)
where(conditions).where(["lower(username) = :value OR lower(email) = :value", { :value => login.downcase }]).first
else
where(conditions).first
end
end
qualche consiglio con questo problema?
======= UPDATE
ho trovato qualcosa qui ■[rails]How to use Devise and Rails , without EMail qui è qualcosa di simile:
# Email is not required
def email_required?
false
end
Con quello aggiunto nel mio modello posso creare un record con nome utente e lasciando il e-mail campo vuoto, ma quando cerco di creare un secondo record senza e-mail al database sorge un errore:
Mysql2::Error: Duplicate entry '' for key 'index_parents_on_email':...
Dovrei usare questo, rimuovere l'indice dal mio tabella nel database e basta validare lo username
nel modello? perché non ho davvero bisogno del campo email su quel modello.
Mr_Nizzle, si può accettare il modo più sexy? – asiniy