Първо, аз съм начинаещ в 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])