Во-первых, я новичок в ROR.
У меня есть Модель пользователя:
class User < ActiveRecord::Base
attr_accessible :email, :name, :password, :password_confirmation,:gender,:date,:username
has_secure_password
end
и SessionsController для сеансов входа/выхода с новыми методами создания и уничтожения:
class SessionsController < ApplicationController
def create
user = User.find_by_username(params[:sessions][:username])
if user && user.authenticate(params[:sessions][:password])
sign_in
else
render sign_in page
end
end
Эта реализация не работает с атрибутом имени пользователя модели пользователя. но хорошо работает с атрибутом электронной почты. (Я могу войти, используя электронную почту, но не имя пользователя.)
когда я запускаю это в консоли rails, он аутентифицирует как имя пользователя, так и атрибуты электронной почты, но на локальном сервере он просто принимает атрибут электронной почты.
где я ошибаюсь?
Также я хотел бы иметь что-то, что позволит пользователю подписать меня, используя либо имя пользователя, либо адрес электронной почты. я пробовал это
class SessionsController < ApplicationController
def create
user = User.find_by_username(params[:sessions][:username]) or User.find_by_email(params[:sessions][:email])
if user && user.authenticate(params[:sessions][:password])