Проблеми при влизане в Rails с различни атрибути на модела

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

person mrudult    schedule 11.05.2013    source източник


Отговори (1)


Настоятелно препоръчвам да използвате нещо като Devise (https://github.com/plataformatec/devise ) за удостоверяване, особено ако сте нов в RoR. Има толкова много проблеми с удостоверяването и то е толкова критична част от вашето приложение, че трябва да имате много добра причина да се опитате да го направите сами.

person RobHeaton    schedule 15.05.2013
comment
Просто сега искам да напиша собствено разрешение. - person mrudult; 15.05.2013